第三章:http报文
第三章:http报文
引言
如果说http是因特网的信使,那么http报文就是它用来搬东西的包裹了。
本章内容
1、报文是如何流动的
2、http报文的三个组成部分(起始行、首部和实体的主体部分)
3、请求和响应报文之间的区别
4、请求报文支持的各种功能
5、响应报文返回的状态码
6、各种各样的http首部都是做什么用的
报文的组成部分
http报文是简单的格式化数据块
报文组成部分
起始行(对报文的描述)
首部(属性块)
数据主体(可选部分)
起始行和首部都是由行分隔的ASCII文本(每行都是以一个由两个字符组成的行终止序列为结束,其中包含一个回车符和一个换行符,
可以写作CRLF),报文主体是可选的,主体可以是文本或二进制数据也可以为空。
http报文可以分为请求报文和响应报文
请求报文
<method> <request-url> <version>
<headers>
<entity-body>
响应报文
<version> <status> <resion-phrase>
<headers>
<entity-body>
常用的http请求方法
GET 从服务器获取资源
DELETE 从服务器上删除资源
POST 向服务器发送需要的数据
PUT 将请求的主体部分存储到服务器上
HEAD 只从服务器获取资源的首部
TRACE 对可能经过代理服务器传送到服务器上去的报文进行追踪
OPTIONS 决定可以在服务器上执行哪些方法
安全方法
http定义了一组被称作安全方法的方法。GET方法和HEAD方法被认为是安全方法,这就意味着使用get和head方法对服务器资源没有任何影响。
实际上所有方法中只有post方法不是安全幂等方法。
get和put方法是对应的,put用于向服务器存储资源。
其实不用将post方法和put方法区分的太清楚。
post用于向服务器发送数据,put用于向服务器上的资源(例如文件)中存储数据。
状态码分类
100~199 信息提示
200~299 成功
300~399 重定向
400~499 客户端错误
500~599 服务器错误
常见的错误码
400 客户端发送了一个错误的请求
403 forbidden,请求被服务器拒绝
404 not found,请求地址不存在
405 method not allowed,请求的方法不被支持
500 internal server error
502 bad gateway
504 gateway timeout
首部
首部我自己喜欢称作为请求头/响应头
首部分类
通用首部:既可以出现在请求报文也可以出现在响应报文中
请求首部:提供更多有关请求的信息
响应报文:提供更多有关响应的信息
实体首部:描述主体的长度和内容,或者资源自身信息
扩展首部:自定义规范之外的首部
实体的主体部分:实体的主体是http报文的负荷,这部分才是http真正要传输的内容。
总结
清楚http报文的组成部分和报文分类,以及请求方法和常用首部设置,以及主体部分的传输。
还没有评论,来说两句吧...