HTTP协议用于客户端与服务端的通信。请求访问文本或图片等资源的一端称为客户端,提供资源响应的一端称为服务端。两台计算机之间使用HTTP协议进行通信时,通信线路的一端必须是客户端,另一端必须是服务器。使用HTTP协议可以清楚地区分哪一端是客户端,哪一端是服务器端。通信是通过交换请求和响应来实现的。请求消息由请求方法、请求URI、协议版本、可选的请求头字段和内容实体组成。响应消息基本上由协议版本、状态代码、用于解释状态代码的原因短语、可选的响应头字段和实体主体组成。HTTP是一种无状态协议。HTTP协议本身并不保存请求和响应之间的通信状态。HTTP/1.1虽然是无状态协议,但是为了达到想要的状态保持功能,引入了Cookie技术。请求URI定位资源当客户端请求访问资源并发送请求时,需要在请求消息中包含URI作为请求URI。通知服务器意图的HTTP方法GET:获取资源GET方法用于请求访问由URI标识的资源。POST:TransferEntityBodyPOST方法用于传输实体的主体。PUT:传输文件PUT方法用于传输文件。就像FTP协议的文件上传一样,需要在请求报文的body中包含文件内容,然后保存到请求URI指定的位置。HEAD:HEAD方法获取消息头与GET方法相同,只是不返回消息体。用于确认URI的有效性和资源更新的日期和时间等。DELETE:删除文件DELETE方法用于删除文件,与PUT方法相反。DELETE方法通过请求URI删除指定的资源。OPTIONS:查询支持的方法OPTIONS方法用于查询请求URI指定的资源所支持的方法。TRACE:TracingthepathTRACE方法是WEB服务器将之前的请求通信环回给客户端的一种方法。CONNECT:需要使用隧道协议连接到代理。CONNECT方法在与代理服务器通信时需要建立隧道,从而实现与隧道协议的TCP通信。主要使用SSL和TLS协议对通信内容进行加密,通过网络隧道传输。使用方法的命令当向请求URI指定的资源发送请求消息时,使用称为方法的命令。方法的作用是可以指定请求的资源产生某种期望的行为。持久连接节省流量在HTTP协议的初始版本中,每次HTTP通信都会断开TCP连接。持久连接的特点是只要任一端没有明确提出断开连接,就会保持TCP连接状态。在HTTP/1.1中,所有连接默认都是持久连接。流水线持久连接使得以流水线方式发送大多数请求成为可能。随着管道技术的出现,可以直接发送下一个请求,而无需等待响应。使用cookie的状态管理Cookie技术通过在请求和响应消息中写入cookie信息来控制客户端的状态。cookie会根据服务器发送的响应报文中一个名为Set-Cookie的头域信息通知客户端保存cookie。当客户端下次向服务器发送请求时,客户端会自动在请求报文中添加Cookie值并发送出去。服务器找到客户端发送的cookie后,会查看是哪个客户端发送的连接请求,然后比对服务器上的记录,最后得到之前的状态信息
