HTTP协议用于客户端和服务器端之间的通信##
请求访问文本货图像等资源的一端称为客户端,提供资源响应的一端称为服务器端。HTTP规定,请求从客户端发出,最后服务器端响应该请求并返回。
下面是从客服端发送给baidu服务器端的请求报文中的内容:
起始行开头的GET表示请求访问服务器的方法,紧跟后面的
/
表示请求访问的资源对象(请求URI),HTTP/1.1是HTTP版本号。请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成。
接收到请求的服务器,将请求内容的处理结果以响应的方式返回。
200 OK表示请求的处理结果的状态码和原因短语.
响应报文由协议版本、状态码、原因短语、可选的响应首部字段以及实体主体构成。
HTTP是不保存状态的协议,HTTP协议自身不对请求和响应之间的通信状态进行保存,不做持久化处理,更快的处理大量事物,确保协议的可伸缩性。为了实现期望的保持状态功能,引入了cookie技术。
HTTTP协议使用了URI定位互联网资源。当客户端请求访问资源而发送请求时,URI需要将作为请求报文中的请求URI包含在内。如果不是访问特定资源而是对服务器本身发起请求,可以用一个*来代替请求URI。
HTTP方法##
- GET:获取资源
GET方法用来请求访问已被URI识别的资源。 - POST:传输实体主体
- PUT:传输文件(一般不使用)
- HEAD:获得报文首部
- DELETE:删除文件
- OPTIONS:询问支持的方法
- TRACE:追踪路径
- CONNECT:要求用隧道协议连接处理
持久连接节省通信量
HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接,HTTP1.1提出了持久连接的方法。只要任意一端没有明确提出断开连接,则保持TCP连接状态。在HTTP/1.1中,所有的连接默认都是持久连接。持久连接使得多数请求以管线化发送方式成为可能,同时并行发送多个请求。
Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。