HTTP协议格式、URL格式及URL encode

简介: HTTP协议格式、URL格式及URL encode

前言


我们在查看http请求/响应的时候,可以用Fiddler抓包工具。Fiddler抓包:下载、安装及使用_crazy_xieyi的博客-CSDN博客


一、请求格式(Request)


首行:方法 URL 版本号


请求头:包含了若干个键值对,每一个键值对占一行,键和值之间使用 冒号+空格 分割


空行:作为请求头的结束标记


请求正文:有的有正文,有的没有正文(可有可无)


HTTP请求是一个“行文本”,一行一行的组织数据,每一行都有特定的含义。


1.首行


1667911496049.jpg


2.首部(请求头)Header


header这里就是一堆键值对,键值对与键值对之间,使用 换行 来分割;键和值之间,使用 冒号+空格 来分割;header中具体有多少行是不固定的,具体是使用 空行 来作为header的结束标记。

1667911524282.jpg


二、响应格式(Response)


首行:版本号 状态码 状态码描述


响应头:包含了若干个键值对,每一个键值对占一行,键和值之间使用 冒号+空格 分割


空行: 作为响应头的结束标记


响应正文: 有的响应有正文,有的则没有,一种常见的格式就是HTML,当然这里具体格式要看程序猿自己是怎么写的


1.首行


1667911560065.jpg


2.响应头


包含了若干个键值对,每一个键值对占一行,键和值之间使用 冒号+空格 分割

1667911580575.jpg


三、HTTP协议格式总结


1667911601024.jpg


为什么HTTP报文中要存在“空行”?


因为HTTP协议格式并没有规定报头部分的键值对有多少个,空行就相当于是报头的结束标记。


而且HTTP在传输层依赖TCP协议,TCP是面向字节流的,如果没有空行存在,就会存在“粘包问题”。        


四、URL格式  &  URL encode


URL就是我们平时俗称的“网址”。


URL 的详细规则由因特网标准 RFC1738 进行了约定 .(https://datatracker.ietf.org/doc/html/rfc1738 )

URL格式:


1667911634985.jpg


1. 协议名称:http://


2.服务器地址:可以是域名,也可以是IP


3.端口号:可以省略,不写端口号,浏览器在构造请求的时候会自动加上端口号,对于HTTP是80,HTTPS是443。


4.路径:描述了要访问服务器上具体哪个资源


5.查询字符串:这里是程序员自己定义的一组键值对,从浏览器传递给服务器,查询字符串是以 ?开头的,然后键值对与键值对之间使用 & 来分割,键和值之间用等号来连接。


6.片段标识符:定位一个网页内部的一个位置的。

1667911646588.jpg

但是,这些都不是必须的:


1667911657478.jpg


URL encode

像 / ? : 等这样的字符 , 已经被 url 当做特殊意义理解了, 因此这些字符不能随意出现。

比如 , 某个参数中需要带有这些特殊字符 , 就必须先对特殊字符进行转义。

转义的规则如下 : 将需要转码的字符转为 16 进制,然后从右到左,取 4 位 ( 不足 4 位直接处理 ) ,每 2 位做一位,前面加上% ,编码成 %XY 格式。

UrlEncode编码和UrlDecode解码-在线URL编码解码工具

1667911424275.jpg

1667911432927.jpg

相关文章
|
5天前
|
算法 网络协议 安全
HTTP/2 协议的缺点是什么?
HTTP/2 协议的缺点是什么?
|
6天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
34 3
|
17天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
45 13
|
10天前
|
传感器 缓存 网络协议
CoAP 协议与 HTTP 协议的区别
CoAP(Constrained Application Protocol)协议是为资源受限的设备设计的轻量级协议,适用于物联网场景。相比HTTP,CoAP具有低功耗、低带宽占用和简单易实现的特点,支持多播通信和无连接的交互模式。
|
14天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
14天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
14天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
17天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
18天前
|
网络协议 前端开发 API
HTTP 和 TCP 协议的应用场景有哪些不同
【10月更文挑战第25天】HTTP(超文本传输协议)和 TCP(传输控制协议)处于网络协议栈的不同层次,各自具有独特的功能和特点,因此它们的应用场景也存在明显的差异。
|
18天前
|
安全 前端开发 JavaScript
利用HTTP协议进行文件上传和下载的常见方法
【10月更文挑战第25天】可以利用HTTP协议方便地实现文件的上传和下载功能,满足不同应用场景下的需求。在实际应用中,还可以根据具体的业务需求和安全要求,对文件上传和下载的过程进行进一步的优化和安全处理。