一、http请求数据传输流程
前置知识:浏览器是客户端程序,进行http协议格式的数据封装(包装)/分用(解析),还可以进行其他处理,如网页渲染,文件下载,图片展示
1.发送数据报:
浏览器将URL、请求的数据内容包装为http协议的数据报
2.数据封装:
往网络分层4/3层发送数据,后续就是网络数据报封装的过程
3.主机接收数据报:
发送到对应的主机,进行分用,基于数据链路层、网络层、传输层在系统中进行分用解析,最后把http协议的数据报发送到对应端口—>Tomcat应用程序
4.Tomcat解析http协议的数据,返回http协议的响应数据
5.浏览器解析响应数据报:
根据Content-Type进行处理
二、http协议
1.什么是http协议
超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户机与服务器之间的请求-应答协议。web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。
举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。
2.请求方法(重要)
GET方法和POST方法的区别
URL存放请求数据的格式:
url?key1 = value & key2 = value2
请求存放文本数据的格式:
key1 = value1&key2=value2
3.http常见Header
- Content-Type: 数据类型(text/html等)
- Content-Length: Body的长度
- Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
- User-Agent: 声明用户的操作系统和浏览器版本信息;
- referer: 当前页面是从哪个页面跳转过来的;
- location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
- Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能
4.http状态码
http状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用,共有5种类型
几种常见的HTTP状态码:
404:
找不到资源:可以是网页,可以是后台服务
5.Tomcat查找服务/资源的过程
(1)根据项目部署名,查找对应的项目
(2)在对应的项目中,查找对应的uri相对路径的服务
注意:
(1)如果出现404找不到资源,一定是找不到部署文件夹下的资源
(2)资源可以是在部署文件夹根路径下的静态文件,也可以是项目定义的URL服务