四 HTTP协议
协议:两个设备进行数据交换的约定!
Http协议:超文本传输协议(hypertext transfer protocl)
超文本:字符、音频、视频、图片等等
基于tcp协议。tomcat服务器底层实现本质上就是TCP(Socket)
4.1 使用抓包来查看http协议信息
经过演示发现,浏览器和服务器,它们之间进行交互,是一个请求-响应模型!!!
请求:
请求行
请求头
请求正文
响应:
响应行
响应头
响应正文
通过抓包可以看到如下信息
General:请求行,响应行
Request Headers:请求头
Response Headers:响应头
响应正文:将显示内容携带到浏览器
请求正文:用来接收请求的参数.
------------------------------
4.2 请求的执行流程
- 发起请求
- 域名解析
本地域名解析器(C:\Windows\System32\drivers\etc\host),
如果本地解析器无法解析,那么就交给互联网上的DNS解析器
得到IP - 根据ip和端口,可以得到一个Socket对象,执行请求
携带请求行、请求头、请求正文 - 服务器响应浏览器
携带响应行、响应头、响应正文
------------------------------
4.3 http请求
请求组成:请求行、请求头、请求正文
- 请求行
Request URL : 请求路径,告诉服务器要请求的资源路径
Request Method : 请求方式 , GET/POST
protocol : http协议版本
---------------
- GET请求和POST请求
get请求只能携带小数据、get请求下的请求参数会直接拼接到Request URL(请求网址)后面,QueryStringParameters
post请求可以携带大数据、post请求下的请求参数会存放到请求正文
请求参数:比如,表单中的输入框中的值.
如果我们要做文件上传,需要用到post请求,文件比较大
---------------
- 请求头
Content-Type:浏览器告诉服务器,请求正文的数据类型
User-Agent:浏览器告诉服务器,我是个什么样的浏览器
---------------
- 请求正文
请求正文,只有当请求方式为post,且有请求参数时才会有请求正文
------------------------------
4.4 Http响应
Http响应组成:响应行、响应头、响应正文
- 响应行
Status Code : 响应状态码
常见的有:
200:服务器响应成功
302: 告诉浏览器,进行重定向
304: 页面上的内容没有发生改变,不需要重新请求服务器
404: 没有对应的服务器资源
500:服务器内部错误!
---------------
- 响应头
Location:告诉浏览器重定向的资源路径,需要结合响应状态码302使用
Content-Type:服务器告诉浏览器,响应正文的数据类型
Content-Type:text/html;charset=utf-8; 服务器告诉浏览器,响应正文是文本和html标签;告诉浏览器,应该以utf-8的形式进行解码!浏览器就会以html标签及utf-8的形式对响应正文进行渲染显示!!!
refresh:定时跳转
Content-Disposition:文件下载
---------------
- 响应正文
浏览器显示的内容