1 概述

HTTP协议在数据传输的过程,有请求和响应两种报文,相关介绍如下

2 HTTP请求报文

HTTP 之 请求和响应报文介绍_响应报文


开始行


URL:统一资源定位符


版本号


CRLF 回车换行


首部行,在开始行之后,这是添加http头部的字段名 HOST:  回车,注意,冒号后有空格


如果要结束首部信息的时候,要添加一个换行。所以最后一个首部行要有两个换行


一般只有上传才有实体主体,请求没有主体实体


3 HTTP响应报文

HTTP 之 请求和响应报文介绍_请求报文_02



4 报文的语法

.request报文语法格式

<method> <request-URL> <version>
<headers>
<entity-body>

.response报文语法格式

<version> <status> <reason-phrase>
<headers>
<entity-body>

报文语法字段介绍

.version:HTTP/<major>.<minor>

.status三位数字,如200301, 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:请求服务器返回对指定资源支持使用的请求方法