程序员

介绍HTTP

2022-12-02  本文已影响0人  真正的飞鱼

介绍 HTTP

HTTP 协议用于客户端和服务器端之间的通信。请求访问资源的一端被称为客户端, 而提供资源响应的一端被称为服务器端。

HTTP 是一种不保存状态的协议,即无状态(stateless) 协议,它不对之前发生过的请求和响应的状态进行管理。也就是说, 无法根据之前的状态进行本次的请求处理。

HTTP 报文

用于 HTTP 协议交互的信息被称为 HTTP 报文。 请求端(客户端) 的 HTTP 报文叫做请求报文, 响应端(服务器端) 的 HTTP 报文叫做响应报文。

HTTP 报文本身是由多行(用 CR+LF 作换行符) 数据构成的字符串文本。HTTP 报文大致可分为报文首部和报文主体两块。报文首部和报文主体由最初出现的空行(CR+LF)来划分。

其他 可能包含 HTTP 的 RFC 里未定义的首部(Cookie 等)。


HTTP 报文的结构如下图所示:

image-20221128185223348.png

请求报文及响应报文的结构如下图所示:

image-20221128185315110.png image-20221128185517028.png

请求方法

请求方法是请求访问服务器的类型。

请求方法的作用是:告知服务器端,请求的意图。

HEAD 方法和 GET 方法一样, 只是HEAD 方法的响应不返回报文主体部分。HEAD 方法用于确认 URI 的有效性及资源更新的日期时间等。

状态码 & 原因短语

响应报文的状态码用来表示客户端发送的 HTTP 请求的处理结果、 标记服务器端的处理是否正常、 通知客户端出现的错误等。

状态码以 3 位数字组成。数字中的第一位指定了响应类别,后两位无分类。响应类别有以下 5 种。


2XX Success(成功状态码) 通知客户端,请求被正常处理完毕

3XX Redirection(重定向状态码) 通知客户端,需要进行附加操作。表明浏览器需要执行某些特殊的处理以正确处理请求

4XX Client Error(客户端错误状态码) 通知客户端,服务器无法处理请求

5XX Server Error(服务器错误状态码) 服务器处理请求出错

Cookie 技术

HTTP 是一种不保存状态的协议,即无状态(stateless) 协议,它不对之前发生过的请求和响应的状态进行管理。也就是说, 无法根据之前的状态进行本次的请求处理。如果我们要求必须登录认证才能访问资源,那么每次跳转新页面不是要再次登录,就是需要每次请求时在请求报文中附加参数来管理登录状态。于是引入
了 Cookie 技术。

Cookie 的工作机制是用户识别及状态管理。 Web 网站为了管理用户的状态会通过 Web 浏览器, 把一些数据临时写入用户的计算机内。 接着当用户访问该 Web 网站时, 可通过通信方式取回之前发放的 Cookie。Cookie 技术通过在请求和响应报文中写入 Cookie 信息来管理客户端的状态。

参考资料

《图解HTTP》

上一篇下一篇

猜你喜欢

热点阅读