1.报文的组成
报文由 起始行、首部、主体(可选)组成
请求报文:
<method> <request-URL> <version> <headers> <entity-body> e.g: GET /specials/demo.png HTTP/1.0 Host: www.eco.com
响应报文:
<version> <status> <reason-phrase> <headers> <entity-body> e.g: HTTP/1.0 200 OK Content-Type: Application/json Content-Length:1212 {"version":1.0}
2.各部分详解
起始行(请求行/响应行):请求行描述服务器应该执行的操作,响应行描述了操作的状态
首部:为报文添加的附加信息,是一些键值对列表,常见的首部实例如下:
Date:Tue,3Oct 1997 02:16:03 GMT //日期 Content-type:Application/json //实体的主体部分是json Content-length:1024 //主体部分的数据量 Accept: image/gif,image/jpeg,text/html //客户端可以接受图片以及html
主体部分:HTTP报文的负荷,就是HTTP要传输的内容,可以是各种格式
3.方法
GET:是最常用的方法,通常用于请求服务器资源
HEAD:和GET方法很相似,但是只返回响应报文的起始行和首部,不包含主体部分,用于在不获取实际资源的情
况下,对资源的首部进行检查
PUT:与GET相反,它用于向服务器写入文档,让服务器用请求的主体部分来创建一个由请求的URL命名的新文档(存储数据)
POST:起初用来向服务器输入数据(发送数据),实际上现在大多用它来支持HTML的表单
TRACE:允许客户端在最终将请求发送给服务器时,看看它变成了什么样子(客户端发起的请求,中间可能要经过一些防火墙、
代理、网关等,这些都有可能会修改原始http请求),可以用于检测代理对用户请求产生的效果
OPTIONS:请求服务器告知其支持哪些功能(方法)
DELETE:请求服务器删除请求URL所指定的资源,但无法保证,应为HTTP规范允许服务器在不告知客户端的情况下撤销请求
扩展方法:未在规范中定义的