网站首页 > 资源文章 正文
HTTP协议
前面讲过了传输层的TCP和UDP协议。现在咱们来讲讲应用层的协议。应用层的协议有很多,其中就有HTTP协议。HTTP协议应该是我们平时接触最直接的协议了。比如我们再浏览器中输入http://www.baidu.com.浏览器就会把www.baidu.com这个域名发送到DNS服务器,经过解析后得到IP地址,接下来就发送HTTP请求。HTTP是基于TCP协议的,所以要先跟服务器建立链接,也就是三次握手。建立连接之后就开始发送HTTP请求。HTTP请求格式如下.
主要包含三部分。
第一部分是请求行,包括请求方法,标准的HTTP请求方法有GET,PUT,POST,DELETE,OPTION。然后就是URL,接着就是版本比如HTTP1.1
第二部分是请求头。请求同中包含一些重要的key-value键值对,比如Content-Type指定传入内容格式,authorization指定鉴权需要的信息,Cache-Control来控制缓存等等。
第三部分就是请求体,就是要传送的数据内容。
接下来就是HTTP求情的发送过程,HTTP请求再应用层通过二进制流的方式传输并加上TCP头,到了TCP曾会把二进制流转化为报文段转送,这时候会把目标IP和源IP加到IP头里,然后交给IP层。再IP层要查看目标IP和自己是不是一个局域网,如果是则直接一个ARP广播获取目标IP的mac地址,如果不是,就把请求发送到网关,同样还是ARP协议获取网关的MAC地址,网关接受到请求后提取出目标IP地址由网关根据路由协议决定下一级跳转,经过一级一级跳转后,请求到达目标局域网,目标局域网的路由器发现请求IP是跟我一个网络的于是就在他的局域网通过ARP找到目标IP的mac地址。找到mac地址后把源MAC地址和目标MAC地址加到MAC头中,交给网络层。目标机器发现MAC地址符合就把包接受然后一层层把包头剥开,最后发现需要访问这个端口的程序。于是程序响应请求。返回一个网页。
再看HTTP返回格式
HTTP返回也是包含三部分:
第一部分是状态行,包括版本,状态码,这个状态码就是平时我们看的200,400,500等,短语就是介绍下原因
第二部分是返回头,也是一组key-value的键值对
第三部分是返回实体就是返回的数据内容。
HTTP2.0
HTTP协议发展到后来出现HTTP2.0 版本,这个版本对于HTTP1.x有一下改进
请求头压缩:HTTP2.0 对请求头进行一定的压缩。HTTP1.x的头都带有大量的信息,而且每次都要重复传送。HTTP2.0使用encoder减少请求头的大小,将原来的key-value键值对建立一个索引表,专门为头部压缩设计的HPACK算法使用一份索引表来定义常用的http Header,把常用的 http Header 存放在表里,请求的时候便只需要发送在表里的索引位置即可。
二进制分帧:HTTP2.0之所以能够突破http1.X标准的性能限制,改进传输性能,实现低延迟和高吞吐量,就是因为其新增了二进制分帧层。 HTTP2.0将每个流中传输的数据分为多个消息和帧,并对他们采用二进制编码,这些帧可以并行发送,然后通过每个帧的头部表示重新组合,提高了传输效率
多路复用:HTTP1.x中客户端在同一时间对一个域名的请求有上限限制,超过上线一般都会被阻塞。 HTTP2.0通过多路复用优化了这一性能,它允许一个连接发起多重的请求-响应消息,结合二进制分帧层,可以不通过多个TCP连接并行就可以实现更高的吞吐量。
可能有些朋友看着HTTP2.0的优化点感觉比较晦涩难懂,没有关系。我觉得可以先了解下有这些优化点,在实际的工作中遇到HTTP2.0的使用场景再回过头来理解下技术点也为时未晚,理解也会更加深刻。比如开发过gRPC服务的朋友可以思考以下为什么gRPC声称自己性能比较好。
猜你喜欢
- 2024-10-07 细说HTTP协议及其工作流程(mqtt协议和http协议区别)
- 2024-10-07 计算机网络|HTTP协议(计算机网络|http协议有哪些)
- 2024-10-07 关于 HTTP 协议,你了解多少(http协议网址含义)
- 2024-10-07 还不懂 HTTP 协议的吗?一篇文章讲透
- 2024-10-07 HTTP协议和HTTPS协议的区别详解(http协议和https协议的区别详解过程)
- 2024-10-07 蓝易云 - 网络通信协议-HTTP协议详解!
- 2024-10-07 HTTP协议入门的核心知识点总结,全在这里了,图文并茂拿走不谢
- 2024-10-07 介绍一下 HTTP 协议(http协议系列介绍)
- 2024-10-07 浅谈HTTP协议(http协议是目前在www中应用最广的协议)
- 2024-10-07 详解:什么是HTTP/3 和 QUIC 协议(modbus通讯协议功能码详解)
你 发表评论:
欢迎- 最近发表
-
- UG10.0UG12.0教程,共63章节,送给那些正在自学UG编程的朋友
- UG产品图档下载,连筋薄板,外形铣、孔铣都要用
- 天正建筑 T30V1.0 下载安装教程(支持CAD2025)
- 教你如何开启UG NX12.0设置保护加密(文件密码)
- UG NX 8.5 安装教程,安装过程就是这么简单
- ug安装教程详细步骤ug怎么免费安装教程ug软件怎样安装步骤
- UG/NX安装失败,如何才能彻底删除(卸载)UG/NX?6步就能解决
- UG8.5 正式版安装方法(ug8.8安装)
- ug12.0版安装教程与安装包免费下载 #ug安装
- China-EU 50 years: Advancing stability and prosperity through partnership
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)