http协议

http请求基本原理:

  客户端向服务端发起请求时,会生成一段请求报文,请求报文由请求方法,请求的URL,协议版本、请求头和内容实体5部分组成。

        服务器接收到请求后会响应请求端,返回响应报文,响应报文组成为5部分:协议版本、状态码、解释状态码 的解释语句、响应头、以及响应实体。

http请求缺点及cookie的改进作用:

   http请求不做持久化状态管理。也就是说,请求发出后,响应结束整个过程就结束了,再次请求时,经过的流程与上一次一样,服务器不会记得上次是什么时候请求过或者是谁请求过,此时,如果我们想要记得之前我们的请过历史,进行状态管理,就可以使用cookie来协助服务器进行状态管理。如果没有cookie,由于http不保存请求状态,那么,每一次打开新网页都需要用户去登录,cookie可以通过响应报文中的set-cookie字段来通知客户端自动保存cookie,下次请求时会自动发送cookie,服务器会对比数据得到状态结果,下次请求时,请求端会带上cookie让服务器验证,服务器验证成功后,知道是验证过的请求方,避免了服务器再次生成cookie和对响应报文加入cookie的环节。

GET请求与POST请求的异同点:

        主要差别有五个,分别为:

  安全性:GET请求都包含在URL中,而且会被浏览器保存历史浏览记录,POST请求不会,但是在抓包的时候同样可以被抓到;

  数据长度:GET请求参数会包含在URL中,但是URL有长度限制,URL长度限制多少字符是有各个浏览器控制的,长度的限制会影响GET传参请求;

  缓存:GET请求能缓存数据,而POST请求不能缓存;

  数据量:POST请求可以通过请求的内容实体传输更多的信息,而GET请求数据量有限;

  数据、编码类型:POST请求不限制数据类型,支持更多的编码类型。

请求状态码:

  共有5类状态码类型。

  1xx  表示请求正在处理中;

  2xx  请求正常处理且处理成功

      200  从客户端发送的请求被正确处理

                204   请求成功,但请求的内容不含响应实体部分

        206   进行范围请求

  3xx  请求重定向

      301 永久性重定向,表示资源已经被分配了新的URL

      302  临时重定向,表示资源被临时性的分配到新的URL

           303  资源存在着另外一个URL,应该使用新的URL定向获取资源

          文档规定,浏览器对303状态码的处理跟原来http 1.0中处理302的方式一样,对307的处理则跟原来在http 1.0中对302的描述一样。

          总结:303和307的状态码出现是由于POST请求的非幂等属性造成的。可以说,303和307是302的详细划分

      304  服务端通过cookie判断出客户端已发送过相同的请求,当前资源与上次请求时的资源相同

      

  4xx  客户端错误

      400  请求报文存在着语法错误

      401  请求需要携带http验证信息,当前请求未通过验证,多为未登录

      403  请求被服务器拒绝

      404  在服务器上没有找到请求的资源

  5xx  服务器错误

      500  服务器在执行请求时发生了错误

      503  服务器超荷载或处于停机维护状态,无法处理请求

http请求报文和响应报文通用头部:

  cache-control: 缓存管理

      no-cache  客户端不缓存过期资源

      no-store   不进行缓存

      max-age   如果资源缓存时间比指定时间小,客户端就接受缓存,且服务器不对资源有效性进行再次确认

  connection:  控制连接

      close  服务器明确断开连接

      keep-alive  保持持久连接

  upgrade  :

      建立一个完全不同的通信协议

HTTPS:

  https是HTTP协议建立在SSL/TLS上的安全协议,相比于HTTP,由于HTTPS多了SSL/TLS的握手和加密解密过程,性能上比HTTP差,但是目前已经可以通过特有硬件加速处理了。

原文地址:https://www.cnblogs.com/yezibucunzai/p/10647983.html