前言
一、Http响应详解
1、HTTP响应报文
http是基于请求和响应的协议,一次请求对应一次响应,请求和响应的数据格式都遵从HTTP的超文本传输协议,HTTP的请求一样,HTTP响应的数据也分为3部分:响应行、响应头、响应体这3部分。请求是通过浏览器将数据传送到服务器,而响应是将服务器处理的结果回送到浏览器。
2、使用抓包工具查看响应数据
响应行格式:
-
协议、版本
- 响应行举例:HTTP/1.1 200
-
状态码
- 常见状态码
-
状态码 状态码描述 说明 200 OK 请求已成功,请求所希望的响应头或数据体将随此响应返回,出现此状态码是表示正常状态。 302 Move temporarily 重定向,请求的资源临时从不同的地址响应请求。 304 Not Modified 从浏览器缓存中读取数据,不从服务器重新获取数据。例如,用户第一次从浏览器访问服务器端图片资源,以后在访问该图片资源的时候就不会在服务器上加载而直接到浏览器缓存中加载,这样效率更高。 404 Not Found 请求资源不存在,通常是用户路径编写错误,也可能是服务器资源已经删除。 403 Forbidden 服务器已经理解请求,但是拒绝执行它。 405 Method Not Allowed 请求行中指定的请求方法不能被用于请求相应的资源。 500 Internal Server Error 服务器内部错误,通常程序抛异常。
-
响应头
- 响应头也是用的键值对:key:value,服务器基于响应头通知浏览器的行为。
- 响应头举例:
- HTTP/1.1 404
- Content-Type :text/html; charset=utf-8
- Content-Language:en
- Content-Length:1093
- Date:Mon,25 jun 2018 13:02:22 GMT
-
常见的响应头:
-
响应头Key 响应头Value location 指定响应的路径,需要与状态码302配合使用,完成重定向 Content-Type 响应正文的类型(MIME类型,属于服务器里面的一种类型,例如文件在Windows系统有自己的类型,.txt、.doc、.jpg。文件在服务器中也有自己的类型),同时还可以解决乱码问题。例如:text/html; charset=UTF-8 content-disposition 通过浏览器以附件形式解析正文,例如:attachment;filename=xx.zip refresh 页面刷新,例如:3; url=www.baidu.com // 三秒刷新页面到 www.baidu.com 补充说明:
MimeType:标识数据类型
最早的HTTP协议中,并没有附加的数据类型信息, 所有传送的数据都被客户程序解释为超文本标记语言 HTML 文档,而为了支持多媒体数据类型, HTTP协议中就使用了附加在文档之前的MIME数据类型信息 来标识数据类型。 MIME意为多功能Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据, 让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。 它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。 每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等, 后面定义 具体的种类。 常见的MIME类型(通用型): windows tomcat 超文本标记语言文本 .html text/html *** xml文档 .xml text/xml XHTML文档 .xhtml application/xhtml+xml 普通文本 .txt text/plain *** PDF文档 .pdf application/pdf Microsoft Word文件 .word application/msword PNG图像 .png image/png *** GIF图形 .gif image/gif JPEG图形 .jpeg,.jpg image/jpeg
-
-
响应体
- 响应体,就是服务器发送给浏览器的数据。当前浏览器向服务器请求的资源是hello.html,所以服务器给浏览器响应的数据是一个html页面。
- 总结:
- 响应行:协议版本号 状态码
- 状态码:
- 200 一切正常
- 404 找不到资源路径
- 500 服务器报异常
- 302 和location一起使用,实现重定向
- 304 从浏览器缓存中读取数据
- 状态码:
- 响应头
- location 指定响应的路径
- content-type 告诉浏览器文件格式,告诉浏览器不要解析html文件,解决中文乱码问题
- refresh 定时刷新
- content-disposition 以附件形式展示图片等资源
- 响应体
- 服务器处理的结果响应到浏览器中。
-
响应头
-
响应头也是用的键值对:key:value,服务器基于响应头通知浏览器的行为。
-
响应头举例:
- HTTP/1.1 404
- Content-Type :text/html; charset=utf-8
- Content-Language:en
- Content-Length:1093
- Date:Mon,25 jun 2018 13:02:22 GMT
-
常见的响应头:
-
响应头Key 响应头Value location 指定响应的路径,需要与状态码302配合使用,完成重定向 Content-Type 响应正文的类型(MIME类型,属于服务器里面的一种类型,例如文件在Windows系统有自己的类型,.txt、.doc、.jpg。文件在服务器中也有自己的类型),同时还可以解决乱码问题。例如:text/html; charset=UTF-8 content-disposition 通过浏览器以附件形式解析正文,例如:attachment;filename=xx.zip refresh 页面刷新,例如:3; url=www.baidu.com // 三秒刷新页面到 www.baidu.com 补充说明:
MimeType:标识数据类型
最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言 HTML 文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息 来标识数据类型。 MIME意为多功能Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数 据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。 它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。 每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义 具体的种类。 常见的MIME类型(通用型): windows tomcat 超文本标记语言文本 .html text/html *** xml文档 .xml text/xml XHTML文档 .xhtml application/xhtml+xml 普通文本 .txt text/plain *** PDF文档 .pdf application/pdf Microsoft Word文件 .word application/msword PNG图像 .png image/png *** GIF图形 .gif image/gif JPEG图形 .jpeg,.jpg image/jpeg
-
-
-
响应体
- 响应体,就是服务器发送给浏览器的数据。当前浏览器向服务器请求的资源是hello.html,所以服务器给浏览器响应的数据是一个html页面。
- 总结:
- 响应行:协议版本号 状态码
- 状态码:
- 200 一切正常
- 404 找不到资源路径
- 500 服务器报异常
- 302 和location一起使用,实现重定向
- 304 从浏览器缓存中读取数据
- 状态码:
- 响应头
- location 指定响应的路径
- content-type 告诉浏览器文件格式,告诉浏览器不要解析html文件,解决中文乱码问题
- refresh 定时刷新
- content-disposition 以附件形式展示图片等资源
- 响应体
- 服务器处理的结果响应到浏览器中。