首先,应用HTTP协议时,必定有客户端和服务器端。
其中,发起请求的是客户端,响应请求并返回的是服务端。
1、请求报文
请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。
请求报文的构成
2、响应报文
服务器以响应的形式返回处理结果。
请求的处理结果200 OK 是状态码(status code)和 原因短语。
下一行是创建相应的日期,是首部字段(header field)的一个属性。
下一行是返回内容的总长度。
下一行是返回内容的类型。
空行后的是资源实体的主体内容。
响应报文
3、HTTP是无状态(stateless)协议。
HTTP自身不对请求和相应之间的通信状态进行保存,即不对发送过的请求或响应进行持久化处理。
这是为了更快地处理大量事务,确保协议的可伸缩性。
这一技术的问题就是当访问一家网站的多个页面时,无法保存其登陆状态,所以根据这一问题,引入了Cookie技术来管理状态。
4、HTTP方法
下面就简单介绍一下常用的几种方法,GET、POST和HEAD除此之外的还有PUT、DELETE、OPTIONS、TRACE和CONNECT,这些不太常用,所以不在这里赘述了。
GET
获取资源。请求已被URI识别的资源,就是经过服务器解析后返回的响应内容,文本就保持原样返回,如果是可执行程序,就返回结果。
POST
传输实体主体。
HEAD
获得报文首部。和GET一样,但是不返回主体部分,只用于确认URI的有效性和资源更新的日期等。
注意:方法名区分大小写,注意要用大写字母。
5、持久化连接
当请求的资源有很多时,会发生多次的TCP连接和断开过程,增加了通信量的开销。于是产生了持久链接(HTTP Persistent connections)。
特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。
6、管线化
持久化连接需要等待上一个发送请求得到响应之后才能发送下一个请求,但是管线化技术可以直接发送,这样就能同时并发发送多个请求。
管线化技术
7、Cookie
状态管理。为了解决HTTP的无状态,Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。具体实现是Cookie根据响应报文内Set-Cookie的首部字段信息,通知客户端保存Cookie,当下一次再像该服务器发送请求,客户端会自动在请求报文中添加Cookie值后发送。服务端发现客户端发送的Cookie后,回去检查对比记录,得到状态信息。
自我回顾
1、请求报文、响应报文的基本组成?
2、什么是无状态协议,怎么解决的?
3、HTTP的基本方法?分别有什么功能?
4、为了加快资源访问速度出现了什么方法?
网友评论