本文主要针对HTTP1.1进行讲解,内容不多,主要是图多
1)HTTP协议和TCP/IP协议族内的众多协议相同,用于客户端和服务器之间的通信
2)请求报文:请求方法、请求URI、协议版本、可选的请求首部字段和内容实体
3)响应报文:协议版本、状态码、用以解释状态码的原因短语、可选的响应首部字段和实体主体
告知服务器意图的HTTP方法
1)GET:获取资源
GET方法用来请求访问已被URI识别的资源,指定的资源经服务器解析后返回响应内容
2)POST:传输实体
POST方法用来传输实体的主体,虽然GET也可以传输实体的主体,但一般不用GET方法进行传输
3)PUT:传输文件
与FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置,因为其自身不带验证机制,一般WEB网站不使用该方法
4)HEAD:获得报文首部
与GET方法一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间等
5)DELETE:删除文件
与PUT方法相反,DELETE方法按请求URI删除指定的资源,因不带验证机制一般不被WEB网站使用
6)OPTIONS:询问支持的方法
用来查询针对请求的URI指定的资源支持的方法
7)CONNECT:要求用隧道协议连接代理
要求与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信,主要使用SSL和TLS协议把通信内容加密后经网络隧道传输
8)TRACE:追踪路径
让WEB服务器将之前请求通信还回给客户端的方法,发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务端就将数值减1,当数值刚好为0时,停止传输,该方法用来确认连接过程中发送的一些列的操作,由于容易引发XST(Cross Site Tracing,跨站追踪)攻击,通常不会被用到
HTTP1.0和HTTP1.1支持的方法
加油
持久连接节省通信量
在HTTP协议的的初始版本中,每进行一次HTTP通信就要断开一次TCP连接,如果对于一个包含众多图片的HTML页面,访问该页面资源时,也会请求该HTML页面的其他资源,每次连接建立和断开,会增加通信量的开销
1)持久连接
为了解决上述TCP连接的问题,HTTP1.1和一部分HTTP1.0想出了持久连接(HTTP Persistent Connections,也称为HTTP Kepp-alive 或HTTP Connection reuse)的方法,它的特点是只要任意一端没有明确提出断开连接,则保持TCP连接状态,减少了重复建立和断开的额外开销
2)管线化
持久连接使得多数请求以管线化方式发送成为可能,即不用等待响应亦可直接发送下一个请求
使用Cookie的状态管理
1)HTTP是无状态的协议,不对之前请求和响应的状态进行管理,它的好处在于减少了服务器的CPU及内存资源的消耗
但是假设要去登陆认证的WEB页面本身无法进行状态的管理,那么每次跳转新的页面不是要求再次登陆就是要在请求报文中附加参数来管理登陆状态,于是有了Cookie
Cookie技术:通过在请求和响应的报文中写入Cookie信息来控制客户端的状态
1)Cookie会根据服务器响应的报文内一个叫Set-Cookie的首部字段,通知客户端保存Cookie
2)当客户端再次发送请求时,会在请求报文中加入Cookie值
3)服务端发现客户端发送过来的Cookie后,检查哪一个客户端的连接并得到相关状态信息
网友评论