通过请求和响应的交换达成通信
HTTP协议和其他TCP协议一样,用于客户端和服务器之间的通信。
客户端:请求资源的一方 服务端:提供资源响应的一方
所以应用HTTP协议的一方一定是客户端。
请求报文的结构
GET 表示资源请求方式,在html的form表单里成为method。
/index.thm 指明了访问资源对象 。
HTTP/1.1 表示我们使用HTTP的版本,这里是1.1的版本
响应报文的结构
HTTP/1.1 HTTP协议的版本号。
200 OK 协议处理的状态码
下一行显示了创建响应的日期时间, 是首部字段(header field) 内的一个属性。
接着以一空行分隔, 之后的内容称为资源实体的主体(entity body) 。
响应报文基本上由协议版本、 状态码(表示请求成功或失败的数字代码) 、 用以解释状态码的原因短语、 可选的响应首部字段以及实体主体构成。 稍后我们会对这些内容进行详细说明。
HTTP是无状态协议
HTTP不会对通信状态进行保存,经过一次请求响应,就删除响应记录。 这样有利于快速的处理大量事务,但也造成了许多问题,如登录状态无法保存,购物车等问题。
HTTP/1.1 虽然是无状态协议, 但为了实现期望的保持状态功能, 于是引入了 Cookie 技术。 有了 Cookie 再用 HTTP 协议通信, 就可以管理状态了。 有关 Cookie 的详细内容稍后讲解。
HTTP 可用的动作方法(有疑问,待修改)
持久连接节省通信量
在之前版本中,每次请求结束后都会断开TCP连接,这种形式,在以前,因为请求的资源少,这样倒是没问题。
但现在我们会请求很多资源。
比如, 使用浏览器浏览一个包含多张图片的 HTML页面时, 在发送请求访问 HTML页面资源的同时, 也会请求该 HTML页面里包含的其他资源。 因此, 每次的请求都会造成无谓的 TCP 连接建立和断开, 增加通信量的开销。
所以在HTTP/1.1中建立了的持久连接的机制
持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销, 减轻了服务器端的负载。 另外, 减少开销的那部分时间, 使HTTP 请求和响应能够更早地结束, 这样 Web 页面的显示速度也就相应提高了。