HTTP协议讲解,请求报文与响应报文都是什么?网络控制台查看HTTP请求

news2024/12/26 2:30:00

目录

一. HTTP解析

二. 请求报文

2.1 请求行

2.1.1 请求类型

2.1.2 请求URL路径

2.1.3 发送的HTTP请求的版本

2.2 请求头

2.2.1 Host:主要用来实现虚拟主机技术

2.2.2 Cookie:一种让浏览器帮忙携带信息的手段

2.2.3 Content—type:资源的媒体类型

2.2.4 User-Agent:发送请求的浏览器类型和版本

2.3 请求空行

2.4 请求体

三. 响应报文

3.1 响应行

3.2 响应头

3.3 响应空行

3.4 响应体

四. 网络控制台

4.1 Network

4.1.1 资源分类

4.1.2 Request Headers和Reponse Headers

4.1.3 Response Body

4.2 Source

4.3 console


一. HTTP解析

HTTP全称(hypertext transport protocol),译为 "超文本传输协议",协议详细规定了浏览器和万维网服务器之间互相通信的规则,也可以理解为约定。

很好理解,我们把浏览器和万维网分别当成张三和李四,他们两个在进行交流的时候,一定要说同一种语言,比如都说中文,或者都说英文,这样才能很好的进行沟通交流;不能一个人说中文,另一个人说英文,语言不通,会导致沟通交互阻塞,双方不知道对方在说什么。因此,在互联网中,我们自然要制定一种通信规则,也可以称之为协议,所有人都遵循这一协议去进行沟通交互,这样一来极大地提高了大家的沟通效率。

二. 请求报文

举个例子。A与B使用互联网进行交流,A向B发送的内容就是请求报文,B返回给A的内容就是响应报文。A与B交互这一动作就可以理解为用户和服务器,用户向服务器发送请求,服务器响应用户的请求返回内容。

请求报文包含"行"、"头"、"空行"、"体" 四部分,下面我对它们分别进行解析; 

2.1 请求行

请求报文行包含三部分。

2.1.1 请求类型

常见的有GET(查询请求)、POST(修改请求)、DELETE(删除请求)、PUT(添加请求)。但实际开发过程中,GET和POST居多,POST还代替GET、DELETE和PUT,只用POST请求也可以完成增删改查四种操作。

2.1.2 请求URL路径

我随便打开一个网站,如下,划线的部分就是URL的部分路径,蓝线的部分就是请求参数,浏览器会帮我们把参数拼接到URL后面,参数也是属于URL的一部分的哦。

2.1.3 发送的HTTP请求的版本

有HTTP1.0、HTTP1.1、HTTP2.0、HTTP3.0。每个版本的内容和技术都略有不同,如果想要详细了解可以查询相关的博文

2.2 请求头

请求头包含了很多东西,这里我挑几个非常常见的来简单说明一下。

2.2.1 Host:主要用来实现虚拟主机技术

举个例子,在一台电脑上,我部署了淘宝、京东,拼夕夕三个服务;各自运行于8080、8081、8082端口。

那么我现在提问,如果我想要在互联网中访问淘宝这个服务,该怎么访问?答案很简单,只需要获取到我本地服务器的IP地址就可以了,然后通过 "IP地址+8080" 就可以访问到淘宝服务;

那么再提问,淘宝这个大服务之下有众多功能,比如购物车,浏览物品,下单支付,我要访问这些小的功能,该怎么访问?

此时我们就会发现,IP+端口只能访问到某个服务,但无法访问到这个服务之下的其它目录功能(网站)。而 Host 技术就帮我们解决了这个烦恼,虚拟主机可以理解为共享主机,它是一种技术,它会将一台完整的服务器分成若干个主机,因此可以在单一主机上运行多个网站或服务。

当我们的服务无法通过 IP+端口 的形式来访问时,就可以使用Host来进行定位,Host请求头决定了我们访问哪个虚拟主机,Host是唯一客户端必须携带的请求头,如果缺失则会返回 400 状态码。在 HTTP2.0 以及 HTTP3.0 中,则是一个伪头 :authority 代替。

2.2.2 Cookie:一种让浏览器帮忙携带信息的手段

常常用来存储一些保密级别不是特别高但是又经常需要用到的信息,或者协助Web保持状态。

Cookie有非常多属性,这里我挑两个最最最重要的,HttpOnly和Secure。

Secure标记为 Secure 的 Cookie 只应通过被 HTTPS 协议加密过的请求发送给服务端,HttpOnly设置了 HttpOnly属性的 cookie 不能使用 JavaScript 经由 Document.cookie属性、XMLHttpRequest 和 Request APIs、Cookie Store APIs进行访问。

2.2.3 Content—type:资源的媒体类型

比较常见的类型是"application/json",告诉浏览器这是一个 JSON 数据;

下面几种也可以了解一下:

"text/html" 和 "application/json" 是 MIME 类型,而 "html" 和 "json" 是扩展名;

"text/html; charset=utf-8" 表示这是一个 HTML 文档,并且使用 UTF-8 编码;

"application/pdf; name=example.pdf; size=1024" 表示这是一个 PDF 文件,并且文件名为 example.pdf,并且文件大小为 1024 字节;

2.2.4 User-Agent:发送请求的浏览器类型和版本

User-Agent 的值通常由浏览器自动生成,并在每次请求时发送给服务器。服务器可以使用 User-Agent 来确定客户端的类型和版本,从而提供相应的响应。

例如,当用户使用 Chrome 浏览器访问一个网站时,Chrome 浏览器会生成一个 User-Agent 字段,其值可能类似于以下内容:

Mozilla/5.0 ------表示这是一个 Mozilla 浏览器;

(Windows NT 10.0; Win64; x64)------表示操作系统是 Windows 10,64 位;

AppleWebKit/537.36(KHTML, like Gecko)-------表示浏览器渲染引擎是 WebKit,版本是 537.36;

Chrome/58.0.3029.110------表示浏览器是 Chrome,版本是 58.0.3029.110;

Safari/537.3------表示浏览器是 Safari,版本是 537.3;

2.3 请求空行

这里是空行,属于一种固定格式,必须有;

2.4 请求体

就是我们常说的请求体。需要注意的是,GET请求的请求体是空的。POST、PUT、DELETE类型的请求通常请求体不为空。

发送POST请求时,常常会把实体参数写在请求体中传递给后端;

三. 响应报文

响应报文与请求报文非常类似,也是包含"行"、"头"、"空行"、"体"四部分;它与请求报文有些类似,但也略有不同,我们一起来看看吧。

3.1 响应行

响应行中,主要包含三部分,包含HTTP版本、HTTP响应状态码、响应状态字符串;版本在上面已经说过了。

响应状态码大家或许都见过,就是200,404,405,500这些就是状态码,想详细了解的小伙伴们可以去看我的另一篇,链接如下

开发常见的http状态码.——400,401,403,404,500,501,503,状态码大全!_400响应码-CSDN博客文章浏览阅读1.7k次,点赞4次,收藏12次。服务器拒绝用户请求,有可能因为用户的权限不足,没有相应的访问权限,紧接着刚才的401,401是用户没有验证身份,如果用户验证了身份,但是没有访问权限,就会爆出403。示意请求者应当继续发送请求,客户端返回此码表示请求有效,但是请求不完整,服务器只接收到了一部分,用户应当继续发送剩余部分;服务器目前从不同的网页位置响应请求,表示资源被临时分配到了新的URL,但请求者无需任何操作,可继续使用原来的位置进行请求。请求的网页已经被永久的移动到了其他位置,资源分配到了新的URL,服务器也会随之重定向至新的网页位置。_400响应码https://blog.csdn.net/m0_70325779/article/details/138962308?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522AE816309-5FB4-4AFB-A654-1850E375AA53%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=AE816309-5FB4-4AFB-A654-1850E375AA53&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-138962308-null-null.nonecase&utm_term=http&spm=1018.2226.3001.4450响应状态字符串与响应状态码可以说是配套的,同学们可以简单的理解为状态码是对当前相应的描述;

比如响应状态码"200",响应状态字符串就是"OK";

响应状态码"404",响应状态字符串就是"没有找到对应资源";

3.2 响应头

响应头中则是存储了一些对响应体的描述;

常见的有:Content-Type:text/html;charset=utf-8;表示响应文本的类型

Content-length:2048;表示响应文本的长度

Content-encoding:gizp;表示响应文本的压缩方式

3.3 响应空行

空行与请求空行一样是固定格式;

3.4 响应体

响应体则是主要的返回结果,通常是返回下面这种HTML文本,然后浏览器将响应体中文本获取到再进行解析,渲染到浏览器页面得以让用户浏览;

<html>
    <head>
        ......
    </head>
    <body>
        <h1>...<h1>
        <form>...</form>
        ......
    </body>
</html>

四. 网络控制台

我们作为开发人员,调试前后端接口时通常需要到浏览器控制台页面去进行查看,通过HTTP请求的请求头请求体,响应头响应体就可以知道我们的接口是在哪一步出现了问题以便进行修改;

随便找一个网站,点击键盘F12即可打开控制台,如下图所示,可以看到上面有一排选项,对于开发人员来说,最熟悉的就是"console"、"Source"、"NetWork"

4.1 Network

Network就是我们要说的重中之重,我刷用心一下页面,可以看到有很多的资源。

4.1.1 资源分类

All就表示展示全部资源;

Fetch/XHR则是可以发送HTTP请求的,这里可以筛选出所有的HTTP请求;

CSS则是页面中的CSS样式资源文件;

JS则是页面中相关的JavaScript资源文件;

Img则是页面中的图片资源文件;

4.1.2 Request Headers和Reponse Headers

然后我随便点击一个HTTP请求,可以在右侧看到Header,有Request headers请求头和Response Headers响应头,下方就显示了我们刚才提到的头部携带的部分信息数据;

General中可以看到当前HTTP的Request URL = http://......,Request Method 为GET查询,Status Code为查询状态200表示查询成功

4.1.3 Response Body

响应体。就是Header方法中请求的路径返回过来的数据信息。

通常在做前后端校验时,都会用来判断我们后端的接口查询到的数据是否正确,如果不正确则说明是我们后端查询接口查询错误;

如果数据正确页面不显示或显示错误,则说明是前端代码出现问题,只需要去对应的前端页面进行排查修改;

4.2 Source

Source则是前端页面的代码,包含静态资源,HTML文件,JS文件,图片等众多资源如下图所示。 

但一般情况下,HTML源文件和JS代码文件都会被隐藏不能让用户看到,防止用户恶意窃取。而我们本地启动自己的项目代码的时候,是可以看到HTML文件和JS文件的,还可以在JS文件中打断点进行调试,如下图,我启动了本地的前端项目,可以看到这里就有JS文件和HTML文件,我们将鼠标点击在行头,就可以标记断点进行调试,如下图蓝色的三行几位断点,当JS代码运行到此处时,就会卡住,和我们使用IDEA进行DEBUG一样的道理。

4.3 console

console就是前端的控制台,我们验证JavaScript的打印console.log("内容")就是将"内容"打印输出在控制台;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2180195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘分布式定时任务在人工智能RPA机器人中的应用|实在RPA研究

一、引言 在人工智能技术不断突破的今天&#xff0c;RPA智能机器人已经渗透到各行各业&#xff0c;成为企 业提升效率、降低成本的重要工具。而在机器人高效运作的背后&#xff0c;分布式定时任务发挥着 不可替代的作用。本文将深入探讨分布式定时任务在人工智能机器人中的应用…

leetcode-链表篇3

leetcode-61 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;head [0,1,2], k 4 输出&#x…

opencv - Fourier Transform 傅里叶变换

目标 在本节中&#xff0c;我们将学习 使用 OpenCV 查找图像的傅里叶变换利用 Numpy 中可用的 FFT 函数傅里叶变换的一些应用我们将看到以下函数&#xff1a;cv.dft()、cv.idft() 等 理论 傅里叶变换用于分析各种滤波器的频率特性。对于图像&#xff0c;2D 离散傅里叶变换 …

优选驾考系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;驾校管理&#xff0c;驾考文章管理&#xff0c;驾照类型管理&#xff0c;报名入口管理&#xff0c;学员报名管理&#xff0c;练车预约管理&#xff0c;考试场地管理 微信端账号功能包括&#xff1a;系…

【羊毛资源】华为云开发者云主机免费申请使用指南

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】&#xff08;全…

【GAN 图像生成】

理论知识学习&#xff1a; PART 1&#xff1a; 生成对抗网络GAN 深度学习模型&#xff0c;用于生成数据 对抗式训练&#xff0c;生成器v判别器 DCGAN>WGAN>StyleGAN技术不断进化 GAN在艺术创作。数据增强领域应用越来越广泛 应用&#xff1a; GAN在图像合成&#x…

生信初学者教程(十二):数据汇总

文章目录 介绍加载R包导入数据汇总表格输出结果总结介绍 在本教程中,汇总了三个肝细胞癌(HCC)的转录组数据集,分别是LIRI-JP,LIHC-US/TCGA-LIHC和GSE14520,以及一个HCC的单细胞数据集GSE149614的临床表型信息。这些数据集为科研人员提供了丰富的基因表达数据和相关的临床…

SqlAlchemy使用教程(七) 异步访问数据库

SqlAlchemy使用教程(一) 原理与环境搭建SqlAlchemy使用教程(二) 入门示例及编程步骤SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用SqlAlchemy使用教程(五) ORM API 编程入门SqlAlchemy使用教程(六) – O…

Find My储物盒|苹果Find My技术与储物盒结合,智能防丢,全球定位

储物盒是用来存储&#xff0c;收藏东西的器具。储物盒可以帮助用户合理利用有限的空间&#xff0c;通过分类归置物品&#xff0c;避免浪费和混乱。储物盒能够有效地保护存放的物品&#xff0c;防止它们受到灰尘、污渍、损坏和潮湿的影响。储物盒还可以增加空间利用率、方便搬家…

Windows环境下使用Docker配置MySQL数据库

用Docker配置数据库&#xff0c;无论是做开发&#xff0c;还是做生产部署&#xff0c;都非常的方便 它不需要单独安装数据库&#xff0c;也不用担心出现各种环境的配置问题。 本文将分享用Docker配置数据库的步骤&#xff0c;这里用MySQL举例。 其他的数据库如MSSQL&#xf…

全球IP归属地查询-IP地址查询-IP城市查询-IP地址归属地-IP地址解析-IP位置查询-IP地址查询API接口

IP地址城市版查询接口 API是指能够根据IP地址查询其所在城市等地理位置信息的API接口。这类接口在网络安全、数据分析、广告投放等多个领域有广泛应用。以下是一些可用的IP地址城市版查询接口API及其简要介绍 1. 快证 IP归属地查询API 特点&#xff1a;支持IPv4 提供高精版、…

Scalefit:有效避免工作场所运动损伤的解决方案

在当今快节奏的工作环境中&#xff0c;运动损伤已成为一个不容忽视的问题。长时间的久坐、重复性动作以及缺乏适当的运动&#xff0c;都可能导致肌肉骨骼损伤、关节疼痛等问题。作为一款专注于运动健康管理的平台&#xff0c;Scalefit Industrial Athlete通过科学的方法和个性化…

天坑!Spark+Hive+Paimon+Dolphinscheduler

背景: 数据中台项目使用Spark+Hive+Paimon做湖仓底层,调度任务使用的是基于Dolphinscheduler进行二开。在做离线脚本任务开发时,在Paimon库下执行非查询类SQL报错。 INSERT报错 DELETE报错 现状: 原始逻辑为数据中台中选择的Paimon数据源,实际上在Dolphinscheduler中是…

生成靶标图像代码——C语言代码实现

1. 生成左右相机拍摄的3个彩色靶标的图像 两个相机在x轴方向上平移 // 生成左右相机拍摄3个靶标时的图像 生成彩色靶标 #include <stdio.h> #include <stdlib.h> #include <math.h>// 图像尺寸 #define WIDTH 1920 #define HEIGHT 1080// BMP头信息 #pra…

掌握自动化测试必要的几种技能?

1.自动化测试员技能——编程语言 当我开始担任手动测试人员时&#xff0c;我不喜欢编码。但是&#xff0c;当我逐渐进入自动化领域时&#xff0c;对我来说很清楚&#xff0c;如果没有对编程语言的一些基本了解&#xff0c;就无法编写逻辑自动化测试脚本。 对编程有一点了解&a…

短视频矩阵源码oem/矩阵系统搭建/源码开发注意事项知识分享

短视频矩阵系统的源码框架主要涵盖Spring、Struts与Hibernate三种。Spring是一款全栈式Java应用开发框架&#xff0c;集成了IOC容器、AOP以及事务管理等关键功能。Struts则基于MVC架构设计&#xff0c;用于Web应用程序的开发&#xff0c;有效分离数据模型、用户界面及控制器逻辑…

全面指南:探索并实施解决Windows系统中“mfc140u.dll丢失”的解决方法

当你的电脑出现mfc140u.dll丢失的问题是什么情况呢&#xff1f;mfc140u.dll文件依赖了什么&#xff1f;mfc140u.dll丢失会导致电脑出现什么情况&#xff1f;今天这篇文章就和大家聊聊mfc140u.dll丢失的解决办法。希望能够有效的帮助你解决这问题。 哪些程序依赖mfc140u.dll文件…

深圳市软件行业协会领导到访开源网安,共筑大湾区数字经济安全未来

近日&#xff0c;深圳市软件行业协会会长邓爱国、秘书长郑飞等一行人到访开源网安进行参观交流。双方以网信行业技能培训、软件安全开发能力评价和智能网联汽车安全测试等方面为探讨方向&#xff0c;对未来的合作进行了深入交流。 在参观过后&#xff0c;深圳市软件行业协会相关…

查找满足条件的行序号

有 2022 年 1 月的日销售额统计表如下所示&#xff1a; 找出日销售额大于 1000 的日子&#xff1a; spl("E(?1).pselecta(Sales>1000)",A1:B32)pselecta()返回所有满足条件的记录序号&#xff0c;pselect() 则只返回第一个满足条件的行序号 免费课程、免费软件下…

Elasticsearch要点简记

Elasticsearch要点简记 1、ES概述2、基础概念&#xff08;1&#xff09;索引、文档、字段&#xff08;2&#xff09;映射&#xff08;3&#xff09;DSL 3、架构原理4、索引字段的数据类型5、ES的三种分页方式&#xff08;1&#xff09;深度分页&#xff08;fromsize&#xff09…