HTTP实用指南 | 青训营

103 阅读3分钟

HTTP协议实用指南

初识HTTP

什么是HTTP协议

HTTP协议(超文本传输协议)(HyperText Transfer Protocol),他是基于TCP协议的应用层传输协议,简单说就是客户端与服务端进行数据传输的一种规则。
注意:客户端与服务器的角色不是固定的,一端充当客户端,也可能在某次请求中充当服务端,这取决于与请求的发起端,HTTP协议属于应用层,建立在传输层协议TCp之上。客户端通过与服务器建立TCP链接,之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。 HTTP是一种无状态的协议,HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理。这样做的目的是保持HTTP协议的简单性,从而能够快速处理大量的事务,提高效率;

协议发展历程

HTTP 0.9(单行协议):请求GET/mypage.html,响应只有HTML文档 HTTP 1.0(构建可拓展性):增加了Header,有了状态码,支持多种文档类型 HTTP 1.1(标准化协议):链接复用,缓存,内容协商 HTTP 2(更优异的表现): 二进制协议、压缩header、服务器推送 HTTP 3(HTTP3草案)

QQ截图20230820193947.jpg

HTTP请求状态行

请求行由请求Method, URL 字段和HTTP Version三部分构成, 总的来说请求行就是定义了本次请求的请求方式, 请求的地址, 以及所遵循的HTTP协议版本例如:

GET /example.html HTTP/1.1 (CRLF)

HTTP协议的方法有GET: 请求获取Request-URI所标识的资源POST: 在Request-URI所标识的资源后增加新的数据 HEAD: 请求获取由Request-URI所标识的资源的响应消息报头PUT: 请求服务器存储或修改一个资源,并用Request-URI作为其标识DELETE: 请求服务器删除Request-URI所标识的资源TRACE: 请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT: 保留将来使用*OPTIONS: 请求查询服务器的性能,或者查询与资源相关的选项和需求。

协议分析

QQ截图20230820203859.jpg

QQ截图20230820204006.jpg

HTTP的Method是安全的,因为其不会修改服务器的数据方法,GET HEAD OPTIONS Idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有的safe方法都是idempotent的,GET HEAD OPTIONS PUT DELETE

协议分析—报文

在客户端发起的网页请求,服务器端会回复一个状态码,来表示网页的接收状态。如 200 Ok表示客户端请求成功; 301-资源(网页等)被永久转移到其他URL, 302-临时跳转 401 Unauthorized-请求未经授权 404-请求资源不存在,可能是输入了错误的URL 500-服务器发生了不可预期的错误 504-GatewayTimeout网关或者代理的服务器无法在规定的服务器在规定的时间内获得想要的响应