1 概述
HTTP协议在数据传输的过程,有请求和响应两种报文,相关介绍如下
2 HTTP请求报文
开始行
URL:统一资源定位符
版本号
CRLF 回车换行
首部行,在开始行之后,这是添加http头部的字段名 HOST: 值 回车,注意,冒号后有空格
如果要结束首部信息的时候,要添加一个换行。所以最后一个首部行要有两个换行
一般只有上传才有实体主体,请求没有主体实体
3 HTTP响应报文
4 报文的语法
.request报文语法格式
<method> <request-URL> <version> <headers> <entity-body>
.response报文语法格式
<version> <status> <reason-phrase> <headers> <entity-body>
报文语法字段介绍
.version:HTTP/<major>.<minor>
.status三位数字,如200,301, 302, 404, 502;标记请求处理过程中发生的情况,状态码相当于是shell脚本中$?的状态码,常见状态码介绍:http://ghbsunny.blog.51cto.com/7759574/1970445
.reason-phrase:状态码所标记的状态的简要描述
.headers:每个请求或响应报文可包含任意个首部;每个首部都有首部名称,后面跟一个冒号,而后跟一个可选空格,接着是一个值,首部行的介绍:http://ghbsunny.blog.51cto.com/7759574/1970449
.entity-body:请求时附加的数据或响应时附加的数据,如果数据太大的时候,内容超过1512字节,一小部分内容放到http协议的响应报文的实体主体,剩下的内容通过tcp协议进行封装发送
request-URL:请求的URL,即服务器的URL
.Method 方法:请求方法,标明客户端希望服务器对资源执行的动作,方法有如下几种
GET:从服务器获取一个资源
HEAD:只从服务器获取文档的响应首部
POST:向服务器输入数据,通常会再由网关程序继续处理,传的是字符串,如用户名或者密码
PUT:将请求的主体部分存储在服务器中,如上传文件,这里传的是完整的文件
DELETE:请求删除服务器上指定的文档
TRACE:追踪请求到达服务器中间经过的代理服务器
OPTIONS:请求服务器返回对指定资源支持使用的请求方法