1 web客户端和web服务器端
- 如何区分:请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。
- 在两台计算机之间使用HTTP协议通信时,在一条通信线路上必定有 一端是客户端,另一端则是服务器端。
2 请求和响应
-
定义:请求必定由客户端发出,而服务器端回复响应。通过请求和响应的交换达成通信。
-
请求报文结构:
- 响应报文结构:
3 HTTP 为无状态
- 定义:HTTP 是一种不保存状态,即无状态(stateless)协议。HTTP 协议自身不对请求和响应之间的通信状态进行保存。
- 优点:由于不必保存状态,自然可减少服务器的CPU及内存资源的消耗。从另一侧面来说,也正是因为HTTP协议本身是非常简单的,所以才会被应用在各种场景里。
- 解决方案:HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Cookie 技术。有了Cookie再用HTTP协议通信,就可以管理状态了。
4 Cookie
-
定义:Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。
-
流程:
-
没有 Cookie 信息状态下的请求与响应
-
第 2 次以后(存有 Cookie 信息状态)的请求
-
5 方法
-
作用:用于表示请求的意图,对指定资源下达命令。
6 持久连接
- 原因:每次的请求都会造成无谓的TCP连接建立和断开,增加通信量的开销。
- 定义:只要任意一端没有明确提出断开连接,则保持TCP连接状态。
- 好处:
- 减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。
- 减少开销的那部分时间,使HTTP请求和响应能够更早地结束,这样Web页面的显示速度也就相应提高了。
务器端的负载。
- 减少开销的那部分时间,使HTTP请求和响应能够更早地结束,这样Web页面的显示速度也就相应提高了。
在 HTTP/1.1 中,所有的连接默认都是持久连接,但在 HTTP/1.0 内并 未标准化。虽然有一部分服务器通过非标准的手段实现了持久连接, 但服务器端不一定能够支持持久连接。毫无疑问,除了服务器端,客户端也需要支持持久连接。