当前位置: 首页 > news >正文

【网络原理7】认识HTTP

目录

一、HTTP协议的位置

二、HTTP协议的特点&应用场景

三、HTTP协议的格式的查看

Fiddler下载与使用

​编辑 如何查看HTTP请求消息

​编辑 如何查看HTTP响应数据包

如何默认开启HTTPS的解析功能 

四、HTTP的请求数据包的格式含义

第一部分:请求行(首行)

      HTTP方法:

       URL 

       HTTP协议版本 

 第二部分:请求头(header)

第三部分:空行(请求头结束的标志)

 第四部分:请求正文(可选的)

五、HTTP响应数据包格式

第一部分:状态行

①HTTP版本号

②HTTP状态码

③对于状态码的描述

第二部分:响应头(header)

第三部分:空行

第四部分:响应正文(body)

一、HTTP协议的位置

在这一篇文章当中,我们提到了TCP-IP五层协议的构成。

初识网络:IP、端口、网络协议、TCP-IP五层模型_革凡成圣211的博客-CSDN博客TCP/IP五层协议详解https://blog.csdn.net/weixin_56738054/article/details/128666970?spm=1001.2014.3001.5502其中,HTTP协议是位于应用层的协议,也就是直接和用户打交道的。

HTTP/1和HTTP/2版本的传输层是基于TCP协议的

HTTP/3版本的传输层是基于UDP协议的

 但是,最新版本的HTTP/3版本,比较少使用。


二、HTTP协议的特点&应用场景

        HTTP协议的可扩展性是非常强的,可以根据实际的需要,让程序员传输各种各样的自定义的数据信息,下面会具体介绍怎样传输的。

        关于应用场景,可以说非常地广泛。

    只要打开任何一个网站,都会使用到HTTP协议。

    打开任意一个手机的APP,都大概率使用到HTTP协议。


三、HTTP协议的格式的查看

在应用层,数据的传输是以文本为单位进行传输的,也就意味着HTTP也是以文本为格式传输的。

Fiddler下载与使用

下面,需要使用一个抓包工具,专门抓HTTP或者HTTPS数据包的工具——Fiddler来监测加载。

 下载地址为Fiddler官网:

 Fiddler | Web Debugging Proxy and Troubleshooting Solutions (telerik.com)


下载完成之后,点击运行Fiddler,可以看到,左侧是一些具体的HTTP请求。

然后,点击某一个HTTP请求之后,可以看到发送的请求&响应:

其中,上方的代表的是请求下方代表的是响应

 如何查看HTTP请求消息

下面,重点关注请求上面这一行的内容:

 这一行的内容,就显示了HTTP的请求格式。

 如果点击了Raw,那么看到的就是HTTP请求数据的本体。

 为了方便,可以在记事本当中打开:

 如何查看HTTP响应数据包

 同理,在下面的响应这一栏当中,也点击Raw,就可以看到HTTP响应数据包。

 为了方便查看,可以在记事本当中打开

但是,却发现了下面出现了乱码。

这个乱码,其实是压缩之后的结果。一个服务器,最贵的硬件资源,其实是网络带宽。

为了提高传输的效率,于是会经常被服务器给"压缩"返回了...这些就是压缩的结果


如何默认开启HTTPS的解析功能 

点击tools->Options->HTTTPS

然后全部勾选。如果提示需要下载一个证书,那么就下载。 

如果此时在响应这一栏看到了乱码:

 那么,可以点击上面的那一行--"Click to decode"解码,就可以看到解码之后的数据:


四、HTTP的请求数据包的格式含义

HTTP的请求分为4个部分:

第一部分:请求行(首行)

      首行又分为3个部分:

      HTTP方法:

       有get/post两种显示的方式,大致描述了这个请求的目的是什么。后面会详细介绍这两种方法的区别。


       URL 

        描述了这个资源请求的地址。


       HTTP协议版本 

        指的是当前HTTP的版本号是什么。上图的版本号就是1.1版本。也有可能是1.1/2.0等等...

         


 第二部分:请求头(header)

  请求头当中包含了很多行的数据,每一行都是一个键值对、键和值之间使用空格来隔开。

 这里的键值对的数目是不固定的,后续会介绍几个常见的键值对。


第三部分:空行(请求头结束的标志)

第三部分和第四部分之间空了一行。 


 第四部分:请求正文(可选的)

 这一部分是可有可无的。如果有的话,可以看到请求的正文部分。

 这一部分的内容,很有可能是服务器返回的json格式的数据。


总览一下HTTP的样式~


五、HTTP响应数据包格式

第一部分:状态行

状态行包含了三个部分

①HTTP版本号

 如上图,HTTP版本号就是HTTP/1.1。


②HTTP状态码

如上图,状态码就是200。

描述了这一个响应成功与否。

通过一个状态码,可以大致了解到:

如果响应成功,那么成功的原因是什么。

如果失败的话,失败的原因是什么。


③对于状态码的描述

如上图,状态码显示为OK。这是通过一个/一组简单的单词,来描述当前的状态码的含义。



第二部分:响应头(header)

响应头也是由多个键值对组成的。每一个键值对各占一行,每一个键值对之间使用空格来分割。


第三部分:空行

空行,就是响应头的结束标志,也就是响应头正文之间空出来多一行。


第四部分:响应正文(body)

       正文部分,其实响应的就是一些html的页面,或者js/css文件等等。或者一些从后端返回的json数据。

       这些数据,可以不存在。


相关文章:

【网络原理7】认识HTTP

目录 一、HTTP协议的位置 二、HTTP协议的特点&应用场景 三、HTTP协议的格式的查看 Fiddler下载与使用 ​编辑 如何查看HTTP请求消息 ​编辑 如何查看HTTP响应数据包 如何默认开启HTTPS的解析功能 四、HTTP的请求数据包的格式含义 第一部分:请求行&…...

SPI实验

目录 一、SPI 简介 二、硬件原理 ECSPI3_SCLK ECSPI3_MISO和ECSPI3_MOSI ECSPI3_SS0 三、I.MX6U ECSPI 简介 ECSPIx_RXDATA ECSPIx_TXDATA ECSPIx_CONREG ECSPIx_CONFIGREG ECSPIx_PERIODREG​编辑 ECSPIx_STATREG 四、ICM-20608 简介 五、代码编写 1、创建文件及文…...

去基线处理

目录detrend函数去除基线多项式拟合原函数BEADS 基线处理小波算法经验模态分解(EMD)参考detrend函数去除基线 detrend函数只能用于去除线性趋势,对于非线性的无能为力。 函数表达式:y scipy.signal.detrend(x): 从信号中删除线…...

模拟信号4-20mA /0-5V/0-75mV/0-100mV转RS-485/232,数据采集A/D转换模块 YL21

特点:● 模拟信号采集,隔离转换 RS-485/232输出● 采用12位AD转换器,测量精度优于0.1%● 通过RS-485/232接口可以程控校准模块精度● 信号输入 / 输出之间隔离耐压3000VDC ● 宽电源供电范围:8 ~ 32VDC● 可靠性高,编程…...

[USB]键盘数据格式以及按键键值

USB键盘数据包含8个字节 BYTE1 – 特殊按键 |–bit0: Left Control是否按下,按下为1 |–bit1: Left Shift 是否按下,按下为1 |–bit2: Left Alt 是否按下,按下为1 |–bit3: Left GUI(Windows键) 是否按下,…...

web客户端-websocket

1、websocket简介 WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手&#xff0c…...

mysql间隙锁

首先我们这里有一个表t,其中的数据如下图所示 注意哈 update由于操作的最新的值,所以是当前读! 另外一个事务插入 8的时候发生锁 而我对id为10的数据进行更新,却不会被锁住 分析:在执行当前读时,由于id7不存…...

华为OD机试 - 计算面积(Java) | 机试题+算法思路+考点+代码解析 【2023】

计算面积 绘图机器的绘图笔初始位i在原点(0.0)。 机器启动后其绘图笔按下面规则绘制直线: 1 )尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E, 2 )期间可通过指令在纵坐标轴方向进行偏移。井同时绘制直线,偏移后按规则1绘制直线;指令的格式为X offsetY。表示在横坐标X…...

Python 之 Pandas 时间戳、通过时间间隔实现 datetime 加减、时间转化、时期频率转换和 shift() 时间频率进行移位)

文章目录一、时间戳1. unit 参数是 s2. year、month、day、hour、minute、second、microsecond 单独设置时间二、通过时间间隔实现 datetime 加减三、时间转化1. 处理各种输入格式2. 将字符串转 datetime3. 除了可以将文本数据转为时间戳外,还可以将 unix 时间转为时…...

一篇文章搞定linux网络模型

网络协议感觉晦涩难懂?什么七层网络模型?又五层网络模型?又四层网络模型?TCP/IP协议是个啥?UDP是啥?什么是三次握手?什么是四次挥手?tcpdump听说是抓包的,怎么用&#xf…...

惠普庆祝在中国40年,强化中国发展战略

中国北京,2023年2月23日 ——今日,“品质信赖向未来” 惠普在中国40年系列活动启动仪式及惠普打印春季新品发布会在北京盛大举行。现场,惠普回顾了40年来与中国经济及产业共同发展的历程,并再次强调了惠普一以贯之的“在中国&…...

C++小作业

前言:long long time ago,老大留了点小作业,一直忘了写…偷偷补上 小作业目录unique_ptr vs shared_ptrunique_ptrshared_ptrpublisher/subscriber 1?boost::bindstd::bindthis? _1?TopicContextPtr?std::moveunique_ptr vs sh…...

Python基础 — lambda匿名函数

1、什么是匿名函数? 匿名函数,顾名思义,就是没有名字的函数,它主要用在那些只使用一次的场景中。如果我们的程序中只需要调用一次某个简单逻辑,把它写成函数还需要先定义、取函数名字等一些列操作,这种场景…...

MongoDB安装和使用过程常见问题

文章目录一、安装过程显示没有相应的权限二、pymongo无法使用,报错一、安装过程显示没有相应的权限 oh我的天,找了网上很多种方法都不行哈哈 不同的电脑对应不同的问题吧~ 我的这个问题是这样解决滴 先直接简述操作路径,不明白的可以看如下图…...

AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC

文章目录环境准备创建VPC配置中转网关给每个VPC创建Transit Gateway专属挂载子网创建中转网关创建中转网关挂载修改VPC的路由验证创建业务Private子网创建可被外网访问的环境测试子网连通性Public子网到Private子网Private子网到Private子网知识点参考资料在《AWS攻略——Peeri…...

Rouge | 自动文摘及机器翻译评价指标

tag:评价指标,摘要,nlp Rouge(Recall-Oriented Understudy for Gisting Evaluation),是评估自动文摘以及机器翻译的一组指标。它通过将自动生成的摘要或翻译与一组参考摘要(通常是人工生成的)进行比较计算,得出相应的分值&#x…...

【Python入门第十五天】Python字典

字典(Dictionary) 字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。 实例 创建并打印字典: thisdict {"brand": "Porsche","model": "911&q…...

java学习思路

基础概念:了解Java的基本概念,如Java虚拟机(JVM)、Java标准版(Java SE)、Java企业版(Java EE)等。了解Java的版本、发展历程以及Java应用场景。可以通过阅读Java官方文档、相关书籍、…...

MySQL操作数据库-------创建数据库

搭建好MySQL环境后,现在我们正式的进入到MySQL的学习当中,这篇文章讲述如何去创建MySQL数据库。 1. 使用CREATE DATABASE创建数据库 语法格式:CREATE DATABASE database_name eg.打开MySQL命令行,查看当前MySQL中存在的数据库 my…...

【十】深入理解redolog,undolog和binlog的底层原理

MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解mysql索引优化以及explain关键字https://blog.csdn.net/zhenghuishengq/article/details/124552080【三】深入理解mysql的索引分类&a…...

下一代神经机器翻译质量评估框架:COMET的革命性架构与智能评估范式

下一代神经机器翻译质量评估框架:COMET的革命性架构与智能评估范式 【免费下载链接】COMET A Neural Framework for MT Evaluation 项目地址: https://gitcode.com/gh_mirrors/com/COMET COMET(A Neural Framework for MT Evaluation&#xff09…...

50天学习FPGA第41天-PCIe的的介绍及使用

目录 简介 配置过程 简介 XDMA是一种DMA/Bridge Subsystem for PCI Express IP,由Xilinx提供。 XDMA IP核设计使用Xilinx提供的DMASubsystem for PCI Express IP是一个高性能、可配置的适用于PCIE 2.0、PCIE 3.0的SG模式DMA,提供用户可选择的AXI4接口或者AXI4-Stream接口。…...

终极Webpack插件完全手册:从Awesome-Webpack探索插件生态的10个实用技巧

终极Webpack插件完全手册:从Awesome-Webpack探索插件生态的10个实用技巧 【免费下载链接】awesome-webpack A curated list of awesome Webpack resources, libraries and tools 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-webpack Webpack作为现…...

FUTURE POLICE模型资源监控与告警:保障生产环境稳定运行

FUTURE POLICE模型资源监控与告警:保障生产环境稳定运行 部署好一个像FUTURE POLICE这样的大模型,只是第一步。真正考验人的,是让它能7x24小时稳定、可靠地跑在生产环境里。想象一下,半夜三更,你的模型服务突然因为显…...

Wan2.2-I2V-A14B开源大模型:支持ONNX导出与边缘设备轻量化部署

Wan2.2-I2V-A14B开源大模型:支持ONNX导出与边缘设备轻量化部署 1. 开箱即用的文生视频解决方案 Wan2.2-I2V-A14B是一款强大的文生视频开源大模型,能够将文本描述直接转化为高质量视频内容。这个专为RTX 4090D 24GB显卡优化的私有部署镜像,让…...

3大核心策略!Langchain-Chatchat RAG语义匹配效率提升实战指南

3大核心策略!Langchain-Chatchat RAG语义匹配效率提升实战指南 【免费下载链接】Langchain-Chatchat Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatch…...

千问3.5-2B辅助MATLAB科学计算:算法实现与结果可视化脚本生成

千问3.5-2B辅助MATLAB科学计算:算法实现与结果可视化脚本生成 1. 科研计算的新助手 作为一名经常使用MATLAB的科研工作者,你是否遇到过这样的困扰:明明知道要解决什么数学问题,却卡在代码实现环节?或者花了大量时间调…...

保温vs隔热

保温vs隔热 什么是保温,什么是隔热?保的什么温,隔的什么热? 1 保温vs隔热 保温vs隔热是门窗幕墙行业耳熟能详的两个词:比如门窗保温性能,隔热铝合金窗等等。那么什么是保温,什么是隔热呢? GB/T 8478-2020《铝合金门窗》中给出了门窗保温性能和隔热性能的定义。 门…...

网站创建时间对网站 SEO 优化有什么影响

网站创建时间对网站 SEO 优化有什么影响 在当今竞争激烈的互联网市场中,网站的 SEO(搜索引擎优化)优化是吸引流量、提高曝光率的关键因素之一。而在众多影响 SEO 的因素中,网站创建时间作为一个被忽视的因素,其实也有…...

Go Routine 调度与系统线程分析

Go语言凭借其轻量级的并发模型在开发者中广受欢迎,而Go Routine作为其核心并发机制,与系统线程的交互方式一直是性能优化的关键。本文将深入分析Go Routine的调度原理及其与系统线程的关系,帮助开发者理解高并发场景下的底层运行机制&#xf…...