HTTP协议二

第一节:HTTP协议用于客户端和服务端之间的通信

客户端:请求访问文本或图像等资源的一端。

服务器端:提供资源响应的一端。

第二节:通过请求和响应的交换达成通信

示例:

请求报文中各个组成部分表示什么含义呢?请看下图:

起始行开头的 POST 表示请求访问服务器的类型,称为方法。

随后的字符串  /form/entry 表示请求访问的资源对象,也叫作 URL。

最后的HTTP/1.1 表示HTTP的版本号,用来提示客户端使用的HTTP协议功能。

请求报文的组成部分:请求方法 + 请求URL + 协议版本 + 可选的请求首部字段 + 内容实体。

接受到请求的服务器会将请求的内容的处理结果以响应的形式返回。如下图所示:

起始行开头的 HTTP/1.1 表示服务器对于的HTTP版本。200 OK 表示请求的处理结果的状态码(status code)和原因短语(reason-phrase)。

第二行显示了创建响应的日期时间,是首部字段(header field)内的一个属性。

接着以一空行分割,之后内容便是字资源实体的主体(entity body)

第三节:HTTP不是保存状态的协议

HTTP是一种不保存状态的,无状态(stateless)协议。HTTP协议自身不会对请求与响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理。

HTPP协议虽然是无状态协议,但是为了实现期望的保持状态功能,例如保持登录状态,于是便引进了Cookie技术,有了Cookie再用 HTTP 协议,就可以管理状态了。

第四节:请求URL定位资源

HTTP 协议使用URL定位互联网上的资源,正式由于URL的特定功能,在互联网上的任意位置的资源都可以访问到。

当客户端请求访问资源而发送请求时,URI 需要将作为请求报文中的请求 URI 包含在内。指定请求 URI 的方式有很多。

第五节:告知服务器意图的HTTP方法:

第六节:使用Cookie的状态管理

Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。

Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。

服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

上图展示了发生 Cookie 交互的情景,HTTP 请求报文和响应报文的内容如下:

原文地址:https://www.cnblogs.com/luoshengjie/p/10368751.html