HTTP协议

HTTP--应用层协议 HTTP HTTP介绍 我们先了解一下HTTP是什么 HTTP(HyperText Transfer Protocol):超文本传输协议 HTTP就是文件传输的一个协议,属于应用层协议,使用TCP作为它的支撑传输协议 HTTP是web的核心,web客户端和web服务端通过交换HTTP报文进行文件传输 我们看一下客户端是如何使用HTTP与服务器端建立联系的 客户端发出一个小TCP报文段 服务器用一个小的TCP报文段做出确认和相应 这时候客户端与服务器端建立了一个TCP连接 客户端向服务器端发出一个HTTP请 阅读详情

什么是HTTP?


在OSI七层模型中(应用层、表示层、会话层、网络层、数据链路层、物理层),而HTTP协议是属于应用层(关于OSI七层模型可以参考知乎上的一篇文章),所谓的HTTP协议主要就是用于描述浏览器如何向服务器发送请求,服务器又是怎样响应浏览器的请求。HTTP是基于TCP/IP协议的,而我们知道TCP是面向连接的,可靠的通信协议,所以,当我们每次向服务器提出请求时,首先得建立连接,保证可靠传输,这里就涉及到三次握手和四次挥手,而当请求结束时,连接就会断开,此后若再次申请连接,就必须再握手,所以我们说,HTTP是无状态的,也就是说每一次请求都是独立的,并不会记住是否已经请求过了(这里可以牵扯到Web中的request和session还有cookie)。

HTTP的结构是怎么样的?


在了解HTTP内部结构之前,先说一下URL。实际上我们就是通过在浏览器地址栏中输入URL从而访问世界各地的网站,从输入URL按回车,到等待页面的呈现,这个过程就是完成了一次请求响应,而世界上有无数的网络资源,我们如何准确地找到我们所需要的?这时候,URL的作用就显而易见了。
URL(Uniform Resource Locator),中文统一资源定位符,就是用于定位资源的(URL和URI的区别?),具体看一下URL的结构:

schema://host[:port#]/path/…/resource[?query-string][#anchor]

schema:指定使用的协议,如:http、https、ftp(http与https的区别?)
host:HTTP服务器的IP地址或者域名(DNS解析?)
port:端口值,默认为80,可以省略。
path:访问资源的目录
resource:资源文件名
query-string:从?号到#号之间是浏览器发送给服务器的请求,多个请求之间用&隔开
anchor:锚,用于页面内的定点跳转。

用一个例子说明:
http://www.aspxfans.com:8080/news/index.jsp?boardID=5&ID=24618&page=1#name
schema:http
host:www.aspxfans.com
port:8080
path:/news/
resource:index.jsp
query-string:boardID=5&ID=24618&page=1
anchor:name

接下来讲一下HTTP的结构
(给大家安利一下Fiddler介个软件,抓包用的,功能齐全强大)

首先是Request

这里写图片描述

分为三部分:

第一部分为请求行:
method:get、post、delete、put;用得最多的是get和post,get是指从服务器获取,post为提交信息(get和post的区别?)。
path:请求路径
HTTP/Version-number:HTTP的版本,目前普遍使用1.1

第二部分为HTTP请求报文头
记录了本次请求所需要的各种信息,以协助客户端和服务端进行信息交互。request head中又分为几部分:
Cache头域:和信息缓存相关
Client头域:与客户机浏览器信息相关
Cookie头域:这个就不用解释了吧~
Entity头域:与发送数据的信息有关
Transport头域:客户端和服务端连接信息
(关于具体的属性介绍,可以参考这篇博文,讲的非常清晰)

第三部分为request body (注意,第三部分和第二部分隔开一行,详情参考下图)
主要存放的也是请求数据,例如post请求中的数据就是放在这一部分

Fiddler软件中的截图,参考一下:
请求报文头:
请求报文头

HTTP请求信息
这里写图片描述

再来看看Response

这里写图片描述

其实request和response结构体有一点点类似,Response第一行中包含了Status code和message属性,分别为状态代码和信息栏,比如常见的404:请求资源没找到;500 服务器内部错误;200 成功响应etc。关于Response中的Header中的属性讲解,也可以参考上面那篇博文。

提供截图参考:

响应报文头
这里写图片描述

完整响应报文结构
这里写图片描述

File协议和Http协议 统一资源定位符URL: 统一资源定位符是用来表示从互联网上得到的资源位置和访问这些资源的方法。互联网上的所有资源,都有一个唯一确定的URL。 URL相当于一个文件名在网络范围的扩展。因为访问不同对象所使用的协议不同,所以URL还要指出读取某个对象时所使用的协议。 URL的一般格式: <协议>://<主机>:<端口>/<路径> 协议:最常用的协议是http/https,其次是ftp 主机:指该主机在互联网上的域名,一个URL中也可以使用IP作为域名 端口 阅读详情

相关推荐

Ubuntu桌面消失?可能是lightdm配置在捣鬼:详细解析/etc/lightdm.conf的优先级机制与实战修复

本文详细解析了Ubuntu系统因lightdm显示管理器配置错误导致桌面消失的问题。通过分析/etc/lightdm.conf的优先级加载机制,提供了从systemctl诊断、调试模式运行到实战修复配置语法错误(如缺失[Seat:*]组)的完整方案。文章还探讨了在系统无法启动时使用chroot或恢复模式进行高级救援,并对比了lightdm与gdm3在NVIDIA驱动环境下的不同表现,帮助用户高效恢复图形界面。

weixin_29313547的博客 420

OSI(七层)网络模型,三次握手四次挥手梳理,Socket.TCP/IP.HTTP三者说明

建立起一个TCP连接需要经过“三次握手”,断开需要经过“四次挥手”。为什么连接的时候是三次握手,关闭的时候却是四次握手?HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket。HTTP协议是建立在TCP协议之上的一种应用。OSI网络模型也称七层网络模型

m0_74985965的博客 1850

CM-GAI:基于连续介质力学与最优传输的数据生成新范式

在数据驱动的工程与科学研究中,如何利用有限的物理数据实现可靠预测是核心挑战。传统方法如深度神经网络,在数据稀缺时往往泛化能力不足且缺乏物理一致性。为解决此问题,一种融合物理原理与数据驱动的新范式应运而生。其核心思想是将数据分布的变化类比为连续介质在广义力驱动下的力学变形过程,通过最优传输理论为分布变换提供最优路径的度量。这种方法将物理规律(如质量守恒、运动方程)作为硬约束嵌入模型,确保了生成过程的物理可解释性。物理信息神经网络(PINNs)则被用作高效求解器,处理高维特征空间中的复杂控制方程。在工程实践中,

weixin_30607029的博客 607

nodejs学习之旅--异步终极解决方案async和await--Ajax--浏览器访问网站的基本过程以及http详解

一、异步终极方案 async+await 1.1、async+await基本结构 之前我么写过类似一下的代码: function func(a, b) { return a + b } let ret = func(10, 30); let ret1 = func(50, 320); let ret2 = func(1560, 30); let ret3 = func(10, 3560); console.log(ret + ret1 + ret2 + ret3); 如果Promise对象也能有

听雨少年的博客 1040

claude使用教程

提供了三种模型:claude,codex, gemini,三种模型都共用同一个apikey, 有开发需求使用claude效果较好,知识问答等场景gemini效果会更好些,本文只提供了claude的安装方式,剩下两种按需按照以下参考链接安装下即可,安装有问题参考文档:https://www.aicodemirror.com/dashboard/official-installation/macos-linux (不需要挂梯子,自己手机号注册就好)

lichao19871216的博客 3471

深度学习 load_data_fashion_mnist

pytorch 中报错:PermissionError: [WinError 5] 拒绝访问。: '…/data’ 在学习李沐大神动手学习深度学习卷积神经网络章节中,调用d2l包中load_data_fashion_mnist报错,这可能是***权限***的问题。 batch_size = 256 train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size,batch_size) 我的解决方法是 重新定义一下 load_data_fashi

纸上得来终觉浅,绝知此事要躬行 9148

http层协议是哪层通信协议

OSI 和 TCP/IP通信协议对比 如图 HTTP协议处于TCP/IP协议体系的应用层。HPPT协议属于应用层的协议,因此工作在最高层,即应用层。图中未标记出HTTP协议,它与FTP、DNS等协议工作 在同一层。 应用层(Application Layer)包含所有的高层协议,包括: 虚拟终端协议(TELNET,TELecommunications NETwork);文件传输协议(FTP,Fi...

u011213040的博客 3万+

HTTPDebugger实战:iTunes登录协议抓包与签名验证全解析

HTTPS抓包是分析客户端与服务端交互的重要手段,其原理是通过中间人证书解密TLS流量,从而观察请求与响应细节。在调试iTunes登录协议时,抓包能帮助我们定位签名验证失败、x-timestamp过期等棘手问题。然而,许多教程中常见的mumu模拟器抓包、fiddler手机抓包或charles抓包unknown问题,往往让新手陷入工具陷阱。本文以HTTPDebugger为切入点,从TLS握手到认证请求,系统拆解iTunes登录协议的关键字段与签名机制,覆盖证书配置、进程监听、域名过滤等实战经验,辅以Apple

weixin_30768881的博客 195

【网络】OSI七层模型,HTTP、Cookie和Session、GET和POST,HTTPS

OSI七层模型都有什么,HTTP的构成,Cookie和Session是什么,GET和POST的区别,HTTPS加密

m0_57018588的博客 1677

如何选择深度强化学习算法:MuZero/SAC/PPO/TD3/DDPG/DQN/等算法

如何选择深度强化学习算法:MuZero/SAC/PPO/TD3/DDPG/DQN/等算法

丨汀、的博客 5221

RK3568平台(音频篇)麦克风PDM接口录音

PDM = Pulse Density Modulation是一种用数字信号表示模拟信号的调制方法。PDM则使用远高于PCM采样率的时钟采样调制模拟分量,只有1位输出,要么为0,要么为1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。相比PDM一连串的0和1,PCM的量化结果更为直观简单。以PDM方式作为模数转换的接收端,需要用到抽取滤波器(Decimation Filter),将密密麻麻的0和1代表的密度分量转换为幅值分量,而PCM方式得到的已经是幅值分量了。

weixin_49303682的博客 5194

http协议及基于http协议的文件下载

目录 1. HTTP 协议概述 2. URL 与资源 3. HTTP报文 4. 使用Postman 获取数据 5. 基于HTTP协议的文件下载 5.1 文件整体下载 5.2 文件分段(Range)下载 5.2.1 获取文件的大小 5.2.2 下载分段文件 5.3 文件分块(chunk)下载 1. HTTP 协议概述 日常我们使用网络用得最多的无疑是在Web 浏览器(下文统...

Xanthium 2万+

使用openclaw出现blocked URL fetch (url-fetch) reason=Blocked: resolves to private/internal/special 解决方案

本文主要介绍了使用openclaw出现blocked URL fetch (url-fetch) target=https://news.google.com/search reason=Blocked: resolves to private/internal/special-use IP address 解决方案,希望能对使用xx的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

http协议是什么?http协议的由来和发展

http协议解析–第一篇 http协议的由来 http协议是什么? 在说http的历史之前,我们先来说清楚http协议是什么? [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 随便百度一下,就会出来上万条的检索结果,其中都会提到“Http就是超文本传输协议”(英文:HyperText Transfer Protocol,缩写:HTTP),没错!这就是http的定义,ht...

weixin_42217106的博客 2405

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HTTP协议&SOCKET协议

一、 HTTP协议是什么? 我们在浏览器的地址栏里输入的网站地址叫做 URL(UniformResourceLocator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地 址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器 上站点的网页代码提取出来,并翻译成漂亮...

Super_King_的博客 929

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【HTTP】HTTP协议 && HTTPS 协议

HTTP(超文本传输协议)是一种应用非常广泛的应用层协议。HTTPs 是在 HTTP基础之上做了一个加密解密的工作。平时我们打开一个网站,就是通过HTTP协议来传输数据的。(所谓 "超文本" 的含义, 就是传输的内容不仅仅是文本(比如 html, css 这个就是文本), 还可以是一些其他的资源, 比如图片, 视频, 音频等二进制的数据)一个完整应用是由前端+后端构成的,而前后端之间的通讯是要依靠HTTP来完成的。

qq_48479056的博客 5232

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

http协议、TCP协议

1).http是用于从万维网服务器传输超文本到本地浏览器的传送协议(HyperText Transfer Protocol)。超文本传输协议是面向事务的、一种应用层协议,其规定了在浏览器和服务器之间的请求和响应的格式和规则,它是万维网上能够可靠交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。2).HTTP是一个 客户端和 服务器端请求和应答的标准。客户端是终端用户,服务器端是网站。

jz661277的博客 1730

HTTP协议-什么是HTTP协议

HTTP协议-什么是HTTP协议   HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。   我们在浏览器的地址栏里输入的网站地址叫做URL(UniformResourceLocator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个In

bestlove12345的博客 904

HTTP协议:一.什么是 HTTP 协议?

前言:本篇文章主要参考自《图解HTTP》,在学习期间也查询过其他资料。仅作为个人的学习记录。​ HTTP 协议和 TCP/IP 协议族内的其他众多协议相同,用户客户端和服务器之间的通信.​ 访问文本或者图像资源的一段称为客户端,而提供资源响应的一端称为服务器端超文本也就是 HTML,当我们发送 HTTP 请求的时候,响应就会返回相应的页面.HTTP 是一种不保存状态的协议,即**无状态协议.**HTTP 协议自身不对请求和响应之间的通信状态进行保存.图:HTTP 协议自身不具备保存之前发送过的请求或响应的功

m0_51928077的博客 3936

HTTP协议详解

HTTP,即超文本传输协议(Hypertext Transfer Protocol),是一种应用层协议,用于从网络传输超文本到用户的浏览器。它定义了客户端和服务器之间请求和响应的格式。HTTP不仅是构建现代网络应用的基础,也是我们进行功能测试、性能测试和安全测试的关键点。通过掌握HTTP协议的工作原理和报文结构,我们可以更有效地设计测试案例,识别潜在的问题,并对网络交互进行精确的测试。

blues_C的博客 2518

HTTP协议的诞生

HTTP协议的诞生 1、什么是HTTP协议 ​ HTTP(HyperText Transfer Protocol,超文本传输协议)是一种主要由web使用的协议规范,完成从客户端到服务器端的一系列运作流程。 注:超文本传输协议这种译法并不严谨,严谨的译名应该为“超文本转移协议”。详细情况可参考http://www.ituring.com.cn/article/1817 ​ “transport”...

不知道灬都不知道 1239

HTTP 协议

(1)GET 也可以给服务器传递一些信息,只不过 GET 传递的信息一般都是放在query string;而POST 传递信息则是通过 body(2)GET 请求一般是用于从服务器获取数据,POST 一般是用于从服务器提交数据(语义上的差别)(3)GET 通常会被设计成幂等的,而 POST 不要求幂等(4)GET 可以被缓存;而POST 一般不能被缓存。

weixin_73616913的博客 3248

HTTP协议深入

灵活可扩展、首部、内容、状态码都可自定义可靠的传输协议、基于TCP协议是一个应用层协议,与ftp、smtp相比应用更广泛采用请求应答通讯模式,客户端和服务端(C/S)无状态的协议实体数据可分段、可压缩、支持多语言、灵活编码。

伏颜的博客 1025

HTTP协议——与HTTP相关的协议

        在TCP/IP协议族中与HTTP密不可分的有3个协议,分别是IP、TCP和DNS。下面简单介绍下这3种协议。1、IP协议        IP(Internet Protocol)网际协议位于网络层,几乎所有使用网络的系统都会用到 IP 协议。TCP/IP 协议族中的 IP 指的就是网际协议,"IP"和"IP地址"是不同的,"IP"其实是一种协议的名称。        IP 协议的作...

vikeyyyy的博客 3231
上一篇: ThreadLocal源码分析
下一篇: 事务隔离级别--脏读,不可重复读,幻读
HamalAlpha
博客等级 码龄11年 5粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值