09-HTTP响应报文协议分析
目标¶
- 知道响应报文包含响应行、响应头、空行、响应体
- 知道响应状态码 404 表示网址没有找到
也就是服务器向浏览器作出响应(反馈数据)时候的协议!
http响应也分成了四个部分:
- 响应行(状态行)
- 响应头
- 空行
- 响应主体(响应数据)
如何使用开发者工具查看请求报文, 以请求 Baidu.com 为例:
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Wed, 14 Mar 2018 09:52:48 GMT
Server: BWS/1.1
1. 响应协议¶
1.1 响应行¶
第一行 HTTP/1.1 200 OK 叫做响应行, 共分成3部分:
协议版本号 状态码 状态描述
比如:
HTTP/1.1 200 OK
注意:
状态码和状态描述是一一对应的!
常见的状态码:
302 redirect¶
我们通过 302 状态码可以指示浏览器跳转到某一个 URL.
404 NOT FOUND¶
当我们访问一个不存在的 URL 时, 一般会返回404状态码, 告诉浏览器, 你访问的 URL 是不存在的.
500 Internal Server Error¶
服务器遇到了一个未曾预料的状况, 导致了它无法完成对请求的处理. 一般来说, 这个问题都会在服务器端的源代码出现错误时出现.
1.2 响应头¶
也是一些协议的集合,也是
协议名:协议值
常见的有:
server :服务器主机信息
date :响应时间
last-modified :文件最后修改时间
content-length :响应主体的长度(字节)
content-type :响应内容的数据类型:text/html,image/png等
location :重定向,浏览器遇到这个选项,就立马跳转(不会解析后面的内容)
refresh :重定向(刷新),浏览器遇到这个选项就会准备跳转,刷新一般有时间限制,时间到了才跳转,浏览器会继续向下解析
content-encodeing :文件编码格式
cache-control :缓存控制,no-cached不要缓存
1.3 空行¶
用来分割响应头与响应主体,也就是响应头到此结束!
1.4 响应主体¶
就是服务器反馈给浏览器的数据!
响应报文格式总结¶
2. 模拟TCP服务器¶
通过网络调试助手模拟TCP服务器,响应请求