读书笔记:《图解HTTP》第三章、第四章
第三章:HTTP报文内的HTTP信息
HTTP报文
HTTP报文是由多行数据构成的字符串文本,是用于HTTP协议交互的信息
HTTP报文结构:(报文首部+空行(CR+LF)+报文主体(非必要))
报文首部组成:请求行、状态、首部字段、其他
编码提升传输速率
报文:是HTTP通信中的基本单位,由8位组字节流组成。
实体:作为请求或相应时的有效荷载数据(补充项)被传输,其内容由实体首部和实体主体组成。
*通常,报文主体等于实体主体。只有当传输中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异。
内容编码:将实体信息原样压缩变小后发送(类似于邮件中压缩文件,附件发送)
常用内容编码:gzip、compress、deflate、identity
分块传输编码
将实体主体分割变小后再发送,以让浏览器可以逐步显示画面
发送多种数据的多部分对象集合
MIME (多用途因特网邮件)扩展中会使用一种称为多部分对象集合(Multipart)的方法,来容纳多份不同类型的数据。如邮件中可处理文本、图像、视频等不同类型的数据。
使用多部分对象集合,需要在首部字段中加上Content-type
获取部分的请求范围
指定下载的请求范围,从下载中断处恢复下载。如果无法响应范围请求,会回复完整内容。用首部字段range指定组员范围。
内容协商
相同URI,返回最合适的内容。如中英文界面对应返回
内容协商技术类型:
(1)服务器驱动协商:以请求的首部字段为参考,在服务器端自动处理
(2)客户端驱动协商:用户从浏览器显示的可选项列表中手动选择
(3)透明协商(结合前两种)
第四章:返回结果的HTTP状态码
状态码:描述返回的请求结果 (组成:3位数字+原因短语)
|
类别 |
原因短语 |
1XX |
Informational(信息性状态码) |
接收的请求正在处理 |
2XX |
Success(成功状态码) |
请求正常处理完毕 |
3XX |
Redirection(重定向状态码) |
需要进行附加操作以完成请求 |
4XX |
Client Error(客户端错误状态码) |
请求报文中存在语法错误,服务器无法处理 |
5XX |
Server Error(服务器错误状态码) |
服务器处理请求出错 |
2xx成功
200 |
OK |
成功,正常处理 |
204 |
No Content |
请求成功处理但是无资源可返回,显示页面不发生更新 |
206 |
Partial Content |
有范围请求,并成功执行 |
3xx重定向
301 |
Moved Permanently |
永久性重定向,表示请求的资源已被分配了新的URI,对方需更新使用的URI |
302 |
Found |
临时性重定向,表示请求的资源已被分配了新的URI,用户(本次)使用新的 URI 访问 |
303 |
See Other |
同302,但是明确要求客户端用GET方法获取资源 |
304 |
Not Modified |
客户端发送附带条件的请求,服务器端允许请求访问资源,但未符合条件的情况 |
307 |
Temporary Redirect |
同302,但禁止将 POST 方法改变成 GET 方法,遵照标准执行 |
*301、302 标准是禁止将 POST 方法改变成 GET 方法的,但实际浏览器都会把POST改成GET,并删除报文内主体,重新发送请求。 |
4xx客户端错误
400 |
Bad Request |
表示请求报文中存在语法错误 |
401 |
Unauthorial |
有认证信息,第1次请求返回认证界面,第2次请求,表示认证失败 |
403 |
Forbidden |
服务器拒绝请求资源(包括权限问题) |
404 |
Not Found |
Not found,服务器上没有请求的资源 |
5xx服务器错误
500 |
Internal Server Error |
执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的故障 |
503 |
Service Unavailable |
服务器暂时处于超负载或正在进行停机维护的状态,无法处理请求 |
未完待续
———————————————————————————————————
书本上的状态码整理在这里,大家日常还经常遇到哪些状态码?它们又代表哪些含义呢?欢迎大家在下方评论区补充分享!
- 点赞
- 收藏
- 关注作者
评论(0)