HTTP原理之HTTP报文(1) 方法

来源:互联网 发布:网络安全教育开题报告 编辑:程序博客网 时间:2024/04/29 06:27

二、HTTP报文

1.简单报文

HTTP协议用于客户端与服务器端之间的通信,请求资源的一端称为客户端,提供资源的一端称为服务器端。从客户端发送请求时必须遵循一定的规则,按规则发送的请求就称为HTTP请求报文,下面就是一个请求报文的例子:

POST /form/entry HTTP/1.1Host: hackr.cnConnection: keep-aliveContent-Type: text/htmlContent-Length: 16name=joe&age=44

图中’POST’是方法,’/form/entry’是URI,’HTTP/1.1’是协议版本;接下来的’Host…Content-Length: 16’是请求首部;空一行后的’name=…44’是内容实体。

而响应报文是服务器端返回的信息,如下:

HTTP/1.1 200 OKDate: Tue, 14 Jun 2016 06:50:15 GMTContent-Length: 362Content-Type: text/html<html>......

图中’HTTP/1.1’是协议版本,’200’是状态码,’OK’是状态码原因短语,’Date:…text/html’是响应首部字段,’< html>…’是响应主体。

2.HTTP方法

GET:获取资源

GET方法用来请求URL指定的资源。指定的资源经服务器端解析后返回响应内容。例子:

请求 响应 GET /index.html HTTP/1.1
Host: www.hackr.cn 返回index.html的页面资源

POST:传输实体主体

POST方法用来传输实体的主体。

请求 响应 POST /submit.cgi HTTP/1.1
Host:www.hackr.cn
Content-Length:1560 返回submit.cgi接收数据的处理结果

PUT:传输文件

PUT方法用来传输文件。就像FTP协议的文件上传一样,要求在请求报文主体中包含文件的内容,然后保存到请求URL指定的位置。不太常用。

请求 响应 PUT /example.html HTTP/1.1
Host:www.hackr.cn
Content-Type: text/html
Content-Length: 1560 响应返回状态码204 No Content(比如:该html已存在于服务器上)

HEAD:获得报文首部

HEAD方法和GET方法一样,只是不返回报文主体部分。用于确认URL的有效性及资源更新的日期时间等。

请求 响应 HEAD /index.html HTTP/1.1
Host:www.hackr.cn 返回index.html有关的响应首部

DELETE:删除文件

DELETE方法用来删除文件,是PUT的相反方法。DELETE方法按请求URL删除指定的资源。也不常用。

请求 响应 DELETE /example.html HTTP/1.1
Host:www.hackr.cn 响应返回状态码204 No Content(比如:该html已从该服务器上删除)

OPTIONS:询问支持的方法

OPTIONS方法用来查询针对请求URL指定的资源支持的方法。

请求 响应 OPTIONS * HTTP/1.1
Host:www.hackr.cn HTTP/1.1 200 OK
Allow:GET,POST,HEAD,OPTIONS

TRACE:追踪路径

TRACE方法是让Web服务器端将之前的请求通信环回给客户端方法。客户端可以用TRACE方法查询发送出去的请求时怎样被加工修改的。不常用,还容易引发XST攻击

请求 响应 TRACE / HTTP/1.1
Host:hackr.cn
Max-Forwards:2 HTTP:/1.1 200 OK
Content-Type:message/http
Content-Length:1024

TRACE / HTTP/1.1
Host:hackr.cn
Max-Forwards:2

CONNECT:要求用隧道协议连接代理

CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL和TSL协议把通信内容加密后经网络隧道传输。

CONNECT 代理服务器名:端口号 HTTP版本

请求 响应 CONNECT proxy.hackr.cn:8080 HTTP/1.1
Host:proxy.hacky.cn HTTP/1.1 200 OK(之后进入网络隧道)

总结下HTTP1.1和HTTP1.0支持的方法

方法 说明 支持的HTTP协议版本 GET 获取资源 1.0、1.1 POST 传输实体主体 1.0、1.1 PUT 传输文件 1.0、1.1 HEAD 获得报文首部 1.0、1.1 DELETE 删除文件 1.0、1.1 OPTIONS 询问支持的方法 1.1 TRACE 追踪路径 1.1 CONNECT 要求用隧道协议连接代理 1.1 LINK 建立和资源之间的联系 1.0 UNLINK 断开连接关系 1.0

其中LINK与UNLINK已被HTTP/1.1废弃。还有一些扩展方法,如LOCK,COPY,MOVE,MKCOL等,不再这里总结。

这里我们简单学习了HTTP报文以及起始行的方法,接下来我们会继续学习状态码、报文头部等。

1 0
原创粉丝点击