HTTP协议

HTTP协议的主要特点:

  简单快速:客户端向服务端请求服务时,只需要传送请求方法和路径。由于http协议简单,使得http服务器的程序规模小,因而通信速度很快

  灵活:http允许传输任意类型的数据对象。以Content-Type标记传输的类型。

  无连接:每次链接只处理一个请求。服务器处理完客户的请求,饼收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  无状态: 无状态是指协议对于事务处理没有记忆能力。服务器不知道客户端是什么状态。意味着如果后续处理需要前面的信息,则它必须重传。

HTTP报文的组成部分

  请求报文:请求行 请求头 空行 请求体

  响应报文:状态行 响应头 空行 响应体

HTTP方法:

  GET:获取资源

  POST:传输资源

  PUT:更新资源

  DELETE :删除资源

  HEAD:获得报文首部

POST和GET的区别:

  1. GET在浏览器回退时不会重复提交,而POST会再次提交请求

  2. GET请求会被浏览器主动缓存,而POST不会,除非手动设置。

  3. GET请求参数会被完整保留在浏览器历史里,而POST中的参数不会被保留

  4. GET请求在URL中传送的参数是有长度限制的,而POST没有限制

  5. GET参数通过URL传递,POST放在Request body 中。

HTTP状态码:

  1xx:  指示信息

  2xx:  成功

    200: 客户端请求成功

  3xx:  重定向

    301:所请求的页面已经转移至新的URL

    302: 锁清秋的页面已经临时转移至新的URL

    304:缓存

  4xx: 客户端错误

    403: 访问被禁止

    404: 请求资源不存在

  5xx: 服务器错误

什么是持久链接:

  HTTP协议采用“请求-应答”模式,当使用普通模式即非Keep-Alive模式时,每个请求/应答客户 和服务器都要新建一个链接,完成之后立即断开链接(http协议为无连接的协议)。

  持久链接是指:当时用Keep-Alive模式(又称持久链接、连接重用)时,客户端到服务端的链接持续有效,当出现对服务器的后续请求时,Keep-Alive功能避免了重新建立链接

什么是管线化:

  使用持久链接的情况下,某个连接上消息的传递类似于:请求1 -> 响应1 ->请求2 -> 响应2 ->请求3 -> 响应3.

  管线化是指:使用持久链接的情况下,某个连接上消息的传递类似于 请求1 -> 请求2 ->请求3 -> 响应1 ->响应2 -> 响应3.

  管线化特点:

    1. 管线化机制通过持久链接完成,仅 HTTP/1.1 支持此技术

    2. 只有GET 和HEAD请求可以进行管线化,而POST则有所限制

    3. 管线化不会影响响应到来的顺序,如上面的例子,响应返回的顺序并未改变

原文地址:https://www.cnblogs.com/yangkangkang/p/8709044.html