初识HTTP报文( 二 )


3、通过査看首部 , 测试资源是否被修改

初识HTTP报文

文章插图
 

初识HTTP报文

文章插图
 
PUT
与GET从服务器读取文档相反 , PUT方法会向服务器写入文档 。就像FTP协议的文件上传一样 , 要求在请求报文的主体中包含文件内容 , 然后保存到请求URI指定的位置
但是 , 由于HTTP/1.1的PUT方法自身不带验证机制 , 任何人都可以上传文件 , 存在安全性问题 , 因此一般的Web网站不使用该方法 。若配合Web应用程序的验证机制 , 或架构设计采用REST(REpresentational State Transfer , 表征状态转移)标准的同类Web网站 , 就可能会开放使用PUT方法
初识HTTP报文

文章插图
 
POST
POST方法起初是用来向服务器输入数据的 。实际上 , 通常会用它来支持html的表单
初识HTTP报文

文章插图
 

初识HTTP报文

文章插图
 
TRACE
TRACE请求会在目的服务器端发起一个“环回”诊断 。行程最后一站的服务器会弹回一条TRACE响应 , 并在响应主体中携带它收到的原始请求报文 。这样客户端就可以査看在所有中间HTTP应用程序组成的请求/响应链上 , 原始报文是否 , 以及如何被毁坏或修改过
发送请求时 , 在Max-Forwards首部字段中填入数值 , 每经过一个服务器端就将该数字减 1 , 当数值刚好减到0时 , 就停止继续传输 , 最后接收到请求的服务器端则返回状态码 200 OK 的响应
但是 , TRACE方法本来就不怎么常用 , 再加上它容易引发XST(Cross-Site Tracing , 跨站追踪)攻击 , 通常就更不会用到了
初识HTTP报文

文章插图
 
OPTIONS
OPTIONS方法请求Web服务器告知其支持的各种功能 。可以询问服务器通常支持哪些方法 , 或者对某些特殊资源支持哪些方法
这为客户端应用程序提供了一种手段 , 使其不用实际访问那些资源就能判定访问各种资源的最优方式
初识HTTP报文

文章插图
 

初识HTTP报文

文章插图
 
DELETE
DELETE方法所做的事情就是请服务器删除请求URL所指定的资源
但是 , HTTP/1.1 的 DELETE 方法本身和 PUT 方法一样不带验证机制 , 所以一般的Web网站也不使用DELETE方法 。当配合Web应用程序的验证机制 , 或遵守REST标准时还是有可能会开放使用的
初识HTTP报文

文章插图
 
CONNECT
CONNECT方法要求在与代理服务器通信时建立隧道 , 实现用隧道协议进行TCP通信 。主要使用SSL(Secure Sockets Layer , 安全套接层)和TLS(Transport Layer Security , 传输层安全)协议把通信内容加密后经网络隧道传输
扩展方法
HTTP被设计成字段可扩展的 , 这样新的特性就不会使老的软件失效了 。扩展方法指的就是没有在HTTP/1.1规范中定义的方法 。服务器会为它所管理的资源实现一些HTTP服务 , 这些方法为开发者提供了一种扩展这些HTTP服务能力的手段 。下面表中列出的这些方法是WebDAV HTTP扩展包含的所有方法 , 这些方法有助于通过HTTP将Web内容发布到Web服务器上去
初识HTTP报文

文章插图
 
版本
HTTP协议有几个版本 , HTTP应用程序要尽量强健地处理各种不同的HTTP协议变体
【HTTP/0.9】
HTTP的1991原型版本称为HTTP/0.9 。这个协议有很多严重的设计缺陷 , 只应该用于与老客户端的交互 。HTTP/0.9只支持GET方法 , 不支持多媒体内容的MIME类型、各种HTTP首部 , 或者版本号 。HTTP/0.9定义的初衷是为了获取简单的HTML对象 , 它很快就被H1TP/1.0取代了
【HTTP/1.0】
1.0是第一个得到广泛使用的HTTP版本 。HTTP/1.0添加了版本号、各种HTTP首部、一些额外的方法 , 以及对多媒体对象的处理 , HTTP/1.0使得包含生动图片的Web页面和交互式表格成为可能 , 而这些页面和表格促使万维网为人们广泛地接受 。这个规范从未得到良好地说明 。在这个HTTP协议的商业演进和学术研究都在快速进行的时代 , 它集合了一系列的最佳实践


推荐阅读