HTTP协议

228 阅读2分钟

HTTP协议的主要特点

  1. 支持客户/服务器模式。
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  3. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  4. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  5. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP报文的组成部分

  • 请求报文
  • 响应报文

HTTP方法

GET 告知服务器,需要从服务器向客户端发送命名资源

HEAD 仅发送命名资源响应中的HTTP首部

PUT 将客户端的数据存储的命名的服务器资源中

POST 将客户端数据发送到一个服务器应用程序

TRACE 追溯一个请求

OPTIONS 查看服务器对资源支持的操作

DELETE 从服务器删除资源

GET和POST的区别

  • get参数通过url传递,post放在request body中。

  • get请求在url中传递的参数是有长度限制的,而post没有。

  • get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。

  • get请求只能进行url编码,而post支持多种编码方式

  • get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。

状态码

类别 原因短语
1xx Informational(信息性状态码) 接收的请求正在处理
2xx Success(成功状态码) 请求正常处理完毕
3xx Redirection(重定向状态码) 需要进行附加操作以完成请求
4xx Client Error(客户端错误状态码) 服务器无法处理请求
5xx Server Error(服务器错误状态码) 服务器处理请求出错

HTTP管线化

定义:客户端可以发送多次请求到服务端,而不需要等待上一次请求得到响应的时候才能进行下一次请求。实现并行发送请求

仅有http1.1规范支持http管线化,1.0并不支持.