[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.3空行
2.2.4载荷(响应正文)
3.认识URL
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 中要包含有中文的时候,无比要进行编码
比如我们在游览器中输入一个你好.然后复制一下上面的网络路径

我们将你好这个输入到码表中
我们可以看到.转码后的和我们输入的一模一样.证明了该游览器对中文进行了转码
相关文章:
[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.3空行 2.2.4载荷(响应正文) 3.认识URL 3.1关于URL encode 1.前言 我们在前面的博客中,简单的…...
Linux 命令基础
Shell概述 Linux操作系统的Shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 Shell是用户和Linux内核之间的接口程序,如果把硬件想象成一个球体的中心,内核围绕在硬件的外层管理着…...
【开源】JAVA+Vue+SpringBoot实现实验室耗材管理系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…...
集成开发环境 IntelliJ IDEA的基本使用
集成开发环境 IntelliJ IDEA 是由 JetBrains 开发的一个强大的 Java IDE,它也被广泛用于其他编程语言的开发,如 Kotlin、Scala 和 Groovy 等。IntelliJ IDEA 以其智能的代码补全、代码分析、重构工具和强大的调试功能而闻名。以下是 IntelliJ IDEA 的基本…...
【Flink入门修炼】1-2 Mac 搭建 Flink 源码阅读环境
在后面学习 Flink 相关知识时,会深入源码探究其实现机制。因此,需要现在本地配置好源码阅读环境。 本文搭建环境: Mac M1(Apple Silicon)Java 8IDEAFlink 官方源码 一、 下载 Flink 源码 github 地址:h…...
Spring IoC容器详解
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 基本概念 Spring IoC容器是Spring框架的核心组件,它实现了控制反转(Inversion of Control,IoC)的设计原则。IoC是一种编程思…...
06 MP之自动填充+SQL执行的语句和速度分析
1. 自动填充 在项目中有一些属性,比如常见的创建时间和更新时间可以设置为自动填充。 1.1 实例 需求: 将创建时间和更新时间设置为自动填充, 这样每次插入数据时可以不用理会这两个字段 1.1.1 在数据库增加字段 默认开启驼峰映射 createTime --> create_time…...
3 scala集合-Set
与 Java 的 Set 一样,scala 的 set 中,元素都是唯一的,而且遍历 set 中集合的顺序,跟元素插入的顺序是不一样的。 同样,Set 也包含可变和不可变两种。要实现可变 Set 集合,需要使用类 scala.collection.mu…...
Android应用图标微技巧,8.0系统中应用图标的适配
大家好,2018年的第一篇文章到的稍微有点迟,也是因为在上一个Glide系列结束之后一直还没想到什么好的新题材。 现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了。三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米、华为、OV等国产手机厂…...
java学习(多态)
一、多态 含义:方法或对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承基础上的。 多态的具体体现: 1)方法的多态 (例如重写和重载) 2)对象的多态 多态注意事项࿱…...
[UI5 常用控件] 07.SplitApp,SplitContainer
文章目录 前言1. SplitApp1.1 组件结构1.2 Demo1.3 mode属性 2. SplitContainer 前言 本章节记录常用控件SplitApp,SplitContainer。主要功能是在左侧显示Master页面,右侧显示Detail页面。 Master页面和Detail页面可以由多个Page组成,并支持…...
MyBatisPlus之分页查询及Service接口运用
一、分页查询 1.1 基本分页查询 配置分页查询拦截器 package com.fox.mp.config;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springfra…...
对象存储minio
参考Linux搭建免费开源对象存储 创建一个data目录 --address和--console-address是MinIO服务器启动命令中的两个参数,它们具有以下区别: --address参数:用于指定MinIO服务器监听的S3 API访问地址。S3 API是用于与MinIO进行对象存储操作的…...
大模型学习笔记二:prompt工程
文章目录 一、经典AI女友Prompt二、prompt怎么做?1)注重格式:2)prompt经典构成3)简单prompt的python询问代码4)python实现订阅手机流量套餐的NLU5)优化一:加入垂直领域推荐6…...
MATLAB实现LSTM时间序列预测
LSTM模型可以在一定程度上学习和预测非平稳的时间序列,其具有强大的记忆和非线性建模能力,可以捕捉到时间序列中的复杂模式和趋势[4]。在这种情况下,LSTM模型可能会自动学习到时间序列的非平稳性,并在预测中进行适当的调整。其作为…...
Kubernetes CNI Calico:Route Reflector 模式(RR) calico IPIP切换RR网络模式
1. 概述 Calico 路由反射模式是一种 BGP 互联方案,用于解决大规模网络中路由信息的分发和同步问题。在 Calico 的路由反射模式中,路由反射器(Route Reflectors)被用来集中管理路由信息,以减少网络中的路由信息数量和减小路由信息的分发规模。 在 Calico 的路由反射模式中…...
探索Gin框架:Golang Gin框架请求参数的获取
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 前言 我们在专栏的前面几篇文章内讲解了Gin框架的路由配置,服务启动等内容。 专栏地址&…...
极值图论基础
目录 一,普通子图禁图 二,Turan问题 三,Turan定理、Turan图 1,Turan定理 2,Turan图 四,以完全二部图为禁图的Turan问题 1,最大边数的上界 2,最大边数的下界 五,…...
word导出链接
java 使用 POI 操作 XWPFDocumen 创建和读取 Office Word 文档基础篇 https://www.cnblogs.com/mh-study/p/9747945.html word标签解析文档 http://www.datypic.com/sc/ooxml/e-w_tbl-1.html...
(delphi11最新学习资料) Object Pascal 学习笔记---第4章第2.5节(重载和模糊调用)
4.2.5 重载和模糊调用 当调用一个重载的函数时,编译器通常会找到匹配的版本并正确工作,或者如果没有任何重载版本具有正确匹配的参数(正如我们刚刚看到的),则会报出错误。 但还有第三种情况:假设编…...
别再怕环路!手把手教你用锐捷RG-IS2700G交换机配置ERPS环网(附完整命令)
锐捷RG-IS2700G交换机ERPS环网实战:从零搭建高可靠企业网络 第一次接手企业园区网核心交换机的运维工作时,看到拓扑图上那个醒目的环形结构,我的手指在键盘上方悬停了整整十分钟——毕竟谁都不想成为"那个让全公司断网的新人"。直到…...
questasim2024.1 wsl2 ubuntu22.04 安装
之前一直在 wsl 2 上用 vcs 进行仿真,但是最近想看一下覆盖率,发现破解有些问题,看不了😅。而且 vcs 老给我报错说系统不兼容,让我很是恼火。开源的 verilator 的验证逻辑又和传统的工具有一些区别,不能完全…...
快速验证抓取逻辑:在快马平台用AI十分钟搭建龙虾openclaw演示原型
最近在研究机器人抓取控制相关的技术,偶然发现了龙虾openclaw这个开源库,想快速验证下它的抓取逻辑。传统开发流程需要先搭建环境、写大量样板代码,但借助InsCode(快马)平台,整个过程变得异常简单。下面分享我的十分钟原型搭建经验…...
3大突破!NormalMap-Online让3D材质制作效率提升10倍的终极解决方案
3大突破!NormalMap-Online让3D材质制作效率提升10倍的终极解决方案 【免费下载链接】NormalMap-Online NormalMap Generator Online 项目地址: https://gitcode.com/gh_mirrors/no/NormalMap-Online 在3D建模领域,如何快速将普通图片转化为具有真…...
Go 网关模式:让业务逻辑和外部服务“保持距离“的艺术
🎬 场景小剧场 想象一下:你的电商系统要接支付功能。如果直接在 order 包里写 stripe.Charge(),明天老板说"换支付宝",你就要满世界改代码 😫 网关模式就是给业务逻辑装个"万能插座":不…...
终极GTA5菜单指南:如何用YimMenu彻底改变你的游戏体验
终极GTA5菜单指南:如何用YimMenu彻底改变你的游戏体验 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimM…...
企业级Leantime容器化部署完整指南:从架构设计到生产环境最佳实践
企业级Leantime容器化部署完整指南:从架构设计到生产环境最佳实践 【免费下载链接】docker-leantime Official Docker Image for Leantime https://leantime.io 项目地址: https://gitcode.com/gh_mirrors/do/docker-leantime Leantime是一款开源的PHPJavaSc…...
AI辅助开发:借助快马智能模型为华网三百每年cn官网打造咨询聊天机器人
AI辅助开发:借助快马智能模型为华网三百每年cn官网打造咨询聊天机器人 最近在给华网三百每年cn官网开发一个在线咨询聊天机器人组件,整个过程让我深刻体会到AI辅助开发的便利性。通过InsCode(快马)平台集成的AI模型,我不仅快速完成了前端组件…...
LLM 算法岗 | 八股问答()· 多模态与主流模型架构
本文能帮你解决什么? 1. 搞懂FastAPI异步(async/await)到底在什么场景下能真正提升性能。 2. 掌握在FastAPI中正确使用多线程处理CPU密集型任务的方法。 3. 避开常见的坑(比如阻塞操作、数据库连接池耗尽、GIL限制)。 …...
用PyQt5打造GUI应用:PyCharm中QtDesigner和PyUic的高效工作流配置
PyCharm专业版中PyQt5高效开发:QtDesigner与PyUic深度整合指南 在Python GUI开发领域,PyQt5凭借其强大的功能和跨平台特性,已成为众多开发者的首选工具。然而,许多中级开发者在实际项目中常遇到工作流断裂的问题——设计界面与代码…...
