[HTTP协议]应用层的HTTP 协议介绍

目录

1.前言

2.使用fiddler抓包来观察HTTP协议格式

3.HTTP协议的基本格式

2.1请求

2,1.1首行

2.1.2请求头

2.1.3空行

2.2响应

2.2.1首行

[2.2.2响应头 键值对](#2.2.2响应头 键值对)

​编辑2.2.3空行

2.2.4载荷(响应正文)

3.认识URL

[3.1关于URL encode](#3.1关于URL encode)


1.前言

我们在前面的博客中,简单的介绍了传输层,网络层,数据链路层等网络层的协议和相关概念,这些协议越往上越和我们编写程序的人息息相关,尤其是应用层和传输层,本篇博客,我将带领大家认识和了解应用层的重要协议--HTTP协议.HTTP又叫做超文本传输协议,所谓的超文本就是即可以是文件也可以是图片或者视频文字之类的. 也可以是HTML 或者CSS JS文件和文本传输只能是字符串不一样,超文本可以传输更多类型的数据.

2.使用fiddler抓包来观察HTTP协议格式

要使用fiddler,我们在一开始设置的时候要同意并且安装它的证书.它就可以自动抓包.使用fiddler的时候要注意不能在电脑上使用代理程序,如果有的话就要关闭这个代理程序,因为fiddler这个软件本身也是一个代理程序,如果使用其他的代理程序的话,就会造成冲突.

当我们打开一个网页以后,也会抓包.

3.HTTP协议的基本格式

HTTP协议分为请求和响应,我们可以在fiddler中打开请求的文本来观察一下HTTP协议的请求

选中raw然后点击view in Notepad就可以以记事本的格式打开这个请求

接下来我们详细说明一下这些内容都分别代表什么含义:

2.1请求

一个请求分为四个部分 分别是

2,1.1首行

首行有三个部分 分别是 方法,url,版本号

2.1.2请求头

从第二行 一直到最后面 都是请求头

里面包含了很多键值对 一个键值对占一行,键和值的使用,用:来分割.此处的键值对都有哪些,是什么含义,都是HTTP协议规定的.

2.1.3空行

请求最下面就有一个空行,这个空行就可以结束标记

2.1.4正文

http 的载荷部分,有的http请求有 有的没有

2.2响应

http 的响应也分为四个部分 分别是

2.2.1首行

这里的首行也分为三个部分 使用空格来分隔

2.2.2响应头 键值对

2.2.3空行

中间这个空行

2.2.4载荷(响应正文)

响应的载荷是html

3.认识URL

url这个概念非常重要,不仅仅是在HTTP中使用,在jdbc中也使用过这个东西,它描述了一个网络上的资源位置是一个唯一资源定位符,比如 https://www.sogou,com/就是一个最简单的url

片段标识符是表示当前页面的某个部分,通过不同的片段表示可以完成页面内的跳转

综上所述 的IP地址 端口号 ,路径,查询字符串 就可以描述出一个网络资源了.

3.1关于URL encode

query string 力是自定义的键值对,在URL中,本身有些特殊符号具有特定的含义.如果query string中也包含有同样的符号,咋办? 如果直接写进去,可能就会使服务器 /游览器解析失败 最靠谱的就是使用转义字符

对于汉字 也是需要转义的. 因为如果汉字的utf8 或者 gbk等编码的值和ascii的码一致 ,就麻烦了

此处是C%2B%2B本来是我们输入的C++, 我们在ascii中拿出来,使用16进制表示,并且加上 %

这里的urlencode编码是非常重要的,实际开发中,在构造一个url的时候 ,尤其url 的 query string 中要包含有中文的时候,无比要进行编码

比如我们在游览器中输入一个你好.然后复制一下上面的网络路径

我们将你好这个输入到码表中

我们可以看到.转码后的和我们输入的一模一样.证明了该游览器对中文进行了转码

相关推荐
2501_94198205几秒前
系统集成与生态建设:将企业微信 RPA 自动化能力融入现有平台
大数据·网络
CAir224 分钟前
一问读懂并了解HTTP代理的基本原理
网络·网络协议·http·代理
北京耐用通信28 分钟前
阀岛的“超级大脑”:耐达讯自动化网关让EtherNet/IP转DeviceNet“说同一种语言”
人工智能·物联网·网络协议·网络安全·自动化·信息与通信
卓码软件测评41 分钟前
具有CMA和CNAS双重资质的软件测试机构【Gatling脚本开发资源请求处理:html、css、js自动下载配置】
websocket·网络协议·测试工具·单元测试·测试用例
xixixi777772 小时前
NTN(神经张量网络):让AI学会“关系推理”的里程碑
网络·人工智能·神经网络·ai·大模型·ntn
斯普信专业组2 小时前
Calico网络架构与实现深度解析(下)
网络·架构·calico
喜欢流萤吖~2 小时前
POST 与 GET:HTTP 请求方法的本质区别
网络·网络协议·http
真正的醒悟2 小时前
图解网络27
网络·智能路由器
真正的醒悟2 小时前
图解网络16
网络·智能路由器
网安小白的进阶之路2 小时前
B模块 安全通信网络 第二门课 核心网路由技术-1-OSPF邻居表建立
网络·安全