飞道的博客

详解HTTP协议

392人阅读  评论(0)

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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场