推荐 上野宣的《图解http》
GET获取资源
GET方式用于请求访问已经被URI识别的资源。制定资源经过服务端解析后返回响应内容。也就是说,如果请求的资源是文本,那就保持原样返回;如果是CGI(Common Gateway Interface,通用网关接口)那样的程序,则返回经过执行后的数据。
下面是用Get方式请求和响应的例子。
POST传输实体主体
虽然Get方式也能传输实体的主体,但一般不用Get方式传输。Post的主要目的不是获取响应的主体内容。
Post方法的请求和响应的例子。
PUT传输文件
PUT方式用于传输文件,要求在请求报文主体包含文件内容,然后保存到请求URI指定的位置。
但是,鉴于HTTP/1.1的PUT方式自身不带验证机制,存在安全问题,所以一般的web网站不使用该方法。如果配合web应用程序的验证机制,或者架构采用REST(REpresentational State Transfer,表征状态转移)标准的同类型网站,就可能开放使用PUT方法。
使用PUT方式的请求和响应的例子。
HEAD获得报文首部
HEAD方式和GET方式一样,只是不返回报文主体部分。用于确认URI的有效性以及资源更新的日期时间等。
使用HEAD方式的请求和响应的例子。
DELETE删除文件
与PUT相反的操作,同样的因为安全问题,一般的web网站也不使用DELETE方法
使用DELETE方法的请求和响应例子。
OPTIONS询问支持的方法
OPTIONS方法用来查询针对请求URI指定的资源支持的方法。
使用OPTIONS方法的请求和响应的例子。
TRACE追踪路径
TRACE方法是让web服务器将之前的请求通信环返回客户端的方法。
在发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务器就将该数字减去1,当数值刚好为0时,就停止继续传输,最后接收到请求的服务器返回200 OK的响应。
客户端通过TRACE方法可以查询发出去的请求是怎么样被加工修改或者篡改的。TRACE方法就是用来确认连接过程中发生的一系列操作。但是TRACE方式容易引发XST(Cross-Site Tracing,跨站追踪)攻击,因此通常不会用到。
使用TRACE方法的请求和响应的例子。
CONNECT要求用隧道协议连接代理
CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(Secure Sockets Layer, 安全套接层)和TLS(Transport Layer Security,传输层安全)协议把通信内容进行加密后经过网络隧道传输。
CONNECT方法的格式如下所示:
代码语言:javascript复制CONNECT 代理服务器名 : 端口号 HTTP版本
使用CONNECT方法的请求和响应的例子。