目录
一、比较HTTP/1.0的优点
1.在HTTP1.0版本中,浏览器请求一个带有图片的网页,会由于下载图片而与服务器之间开启一个新的连接;但在HTTP1.1版本中,允许浏览器在拿到当前请求对应的全部资源后再断开连接,提高了效率。
2.HTTP1.1出现了缓存,不用重复从服务端那边获取重复的资源。
二、请求报文
1.请求报文
(1)格式
请求行 GET/POST 资源路径?参数 HTTP/1.1
请求头
空行
请求体 (只有post请求才有)
2.get请求
(1)请求行
请求方式 GET
访问服务器的资源路径?参数1=值1&参数2=值2 ... ...
协议及版本 HTTP/1.1
GET /05_web_tomcat/login_success.html?username=admin&password=123213 HTTP/1.1
(2)请求头
-主机虚拟地址
Host: localhost:8080
-长连接
Connection: keep-alive
-请求协议的自动升级[http的请求,服务器却是https的,浏览器自动会将请求协议升级为https的]
Upgrade-Insecure-Requests: 1
- 用户系统信息
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36
- 浏览器支持的文件类型
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
- 当前页面的上一个页面的路径[当前页面通过哪个页面跳转过来的]: 可以通过此路径跳转回上一个页面, 广告计费,防止盗链
Referer: http://localhost:8080/05_web_tomcat/login.html
- 浏览器支持的压缩格式
Accept-Encoding: gzip, deflate, br
- 浏览器支持的语言
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
(3)请求体
没有请求体,数据都放在get请求的请求行
3.post请求
(1)请求行
请求方式 POST
访问服务器的资源路径
协议及版本 HTTP/1.1
(2)请求头
Host: localhost:8080 Connection: keep-alive Content-Length: 31 -请求体内容的长度 Cache-Control: max-age=0 -无缓存 Origin: http://localhost:8080 Upgrade-Insecure-Requests: 1 -协议的自动升级 Content-Type: application/x-www-form-urlencoded -请求体内容类型[服务器根据类型解析请求体参数] User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Referer: http://localhost:8080/05_web_tomcat/login.html Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7 Cookie:JSESSIONID-
(3)请求体
F12->网络->负载
浏览器提交给服务器的数据
username=JUDFOWE
password=123456
三、响应报文
1.格式
响应首行(响应行); 协议/版本 状态码 状态码描述
响应头信息(响应头);
空行;
响应体;
2.响应行
协议及版本 HTTP/1.1
响应状态码 200
状态描述 OK (缺省)
3.响应头
Server: Apache-Coyote/1.1 服务器的版本信息
Accept-Ranges: bytes
ETag: W/"157-1534126125811"
Last-Modified: Mon, 13 Aug 2018 02:08:45 GMT
Content-Type: text/html 响应体数据的类型[浏览器根据类型解析响应体数据]
Content-Length: 157 响应体内容的字节数
Date: Mon, 13 Aug 2018 02:47:57 GMT 响应的时间,这可能会有8小时的时区差
4.响应体
F12->网络->响应
需要浏览器解析使用的内容[如果响应的是html页面,最终响应体内容会被浏览器显示到页面中]
5.常见响应状态码
200: 请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
302: 重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location指定新请求的URL地址;
304: 使用了本地缓存
404: 请求的资源没有找到,说明客户端错误的请求了不存在的资源;
405: 请求的方式不允许
408: 服务器等待客户端发送的请求时间过长,超时
500: 请求资源找到了,但服务器内部出现了错误;