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

二、HTTP报文

1.简单报文

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

POST /form/entry HTTP/1.1
Host: hackr.cn
Connection: keep-alive
Content-Type: text/html
Content-Length: 16

name=joe&age=44

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

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

HTTP/1.1 200 OK
Date: Tue, 14 Jun 2016 06:50:15 GMT
Content-Length: 362
Content-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报文以及起始行的方法,接下来我们会继续学习状态码、报文头部等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值