HTTP原理
统一资源定位符URL
URL格式
<协议>://<主机>:<端口>/<路径>
HTTP的URL
HTTP的协议格式
HTTP请求
首行: [方法] + [url] + [版本]
Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束;
Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有一个ContentLength属性来标识Body的长度。
HTTP响应
首行: [版本号] + [状态码] + [状态码解释]
Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束;
Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有一个ContentLength属性来标识Body的长度; 如果服务器返回了一个html页面, 那么html页面内容就是在body中。
HTTP的报文结构
HTTP有两类报文:
(1)请求报文——从客户向服务器发送请求报文
(2)响应报文——从服务器到客户的回答
HTTP的方法
其中最主要的就是get方法和post方法
get()和post()的区别
1.客户端浏览器会把get请求到的数据,默认放在url上,post请求的数据,可以放在请求体中
2.url请求存放数据的格式:url?key1=value1&key2=value2
请求体存放文本数据的格式:key1=value1&key2=value2
HTTP常见Header
●Content-Type: 数据类型(text/html等)
●Content-Length: Body的长度
●Host: 客户端告知服务器,所请求的资源是在哪个主机的哪个端口上; .
●User-Agent: 声明用户的操作系统和浏览器版本信息;
●referer: 当前页面是从哪个页面跳转过来的;
●location:搭配3xx状态码使用,告诉客户端接下来要去哪里访问;
●Cookie: 用于在客户端存储少量信息.通常用于实现会话(session)的功能;
HTTP的状态码
常见状态码
本机HTTP请求
1. 请求url地址:获取网页数据报,浏览器解析并渲染网页
2. 在网页上点击表单提交按钮
3. HTTP请求数据传输流程
前置知识:浏览器是客户端程序,进行http协议格式的数据报封装(包装) /分用(解析),还可以进行其他处理,如网页渲染,文件下载,图片展示等。
(1) 发送数据报:浏览器将url、 请求的数据内容包装为http协议的数据报
(2)数据封装:往网络分层下4/3层发送数据,后续就是网络数据报封装的过程
(3)主机接收数据报:发送到对应的主机,进行分用,基于数据链路层、网络层、传输层在系统中进行分用解析,最后把http协议的数据报发送到对应端口—> tomcat应用程序
(4) tomcat解析http协议的数据, 返回http协议的响应数据
(5)浏览器解析响应数据报:根据Content Type进行处理
转载:https://blog.csdn.net/qq_43452252/article/details/106282208