1.简介
HTTP协议用于客户端和服务器之间的通信。叫超文本传输协议。是位于应用层的协议。
2.特点
1.在两台计算机之间使用 HTTP 协议通信时,在一条通信线路上必定有一端是客户端,另一端则是服务器端。HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始 建立通信的,服务器端在没有接收到请求之前不会发送响应。
2.HTTP 是一种不保存状态,即无状态(stateless)协议,协议对于发送过的请求或响应都不做持久化处理。每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或 响应报文的信息。这是为了更快地处理大量事务
随着 Web 的不断发展,因无状态而导致业务处理变得棘手的情况增多了。比如,用户登录到一家购物 网站,即使他跳转到该站的其他页面后,也需要能继续保持登录状态。但为了实现期望的保持状态功能,于是引入了 Cookie 技术。有了 Cookie 再 用 HTTP 协议通信,就可以管理状态了。
3.使用URI定位资源
HTTP 协议使用 URI 定位互联网上的资源。正是因为 URI 的特定功能,在互联网上任意位置的资源都能访问到。
4. 告知服务器意图的http方法
- GET:GET :获取资源
- POST:用来传输实体的主体。
- PUT:传输文件
- HEAD:获得报文首部
- DELETE:删除文件
- OPTIONS:询问支持的方法
5. 持久链接节省通讯量
1.HTTP 协议的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP 连接。当对同一个资源多次请求,每次的请求都会造成无谓的 TCP 连接建立和断开,增加通信量的开销。
2.持久连接(HTTP Persistent Connections,也称为 HTTP keep-alive 或 HTTP connection reuse)的方法。持久连接的特点是,只要任意 一端没有明确提出断开连接,则保持 TCP 连接状态。
持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销
减少开销的那部分时间,使 HTTP 请求和响应能够更早地结束,这样 Web 页面的显示速度也就相应提高了
在 HTTP/1.1 及2.0中,所有的连接默认都是持久连接。
- 持久连接使得多数请求以管线化(pipelining)方式发送成为可能。从前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。
6.使用cookie来状态管理
- 无状态的特点:
假设要求登录认证的 Web 页面本身无法进行状态的管理(不记录已登录的状态),那么每次跳转新页面不是要再次登录,就是要在每次请求报文中附加参数来管理登录状态。
无状态协议当然也有它的优点。由于不必保存状态,自然可减少服务器的 CPU 及内存资源的消耗。
- cookie技术:
Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。
- 服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存Cookie。
- 客户端保存cookie,当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。
- 服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。
网友评论