Linux网络--4、应用层协议Http

目录

一、引入

二、宏观格式

2.1格式

2.2数据传输过程

三、请求方法

四、状态码

五、http报头

六、http版本


一、引入

在浏览器上对于一个网站的访问我们可以看到

这样一个格式的网址请求URL(网址定位符),今天我们就了解其中的应用层协议http

二、宏观格式

2.1格式

http协议的宏观格式包括请求行、请求报头、空行和请求正文 ,其中各部分以\r\n作为分隔符,在具体传输中将形成一个以\r\n为分割的超长的文本(字节流),因此http协议又称为超文本传输协议,基于tcp形成,无连接

2.2数据传输过程

三、请求方法


其中较为常用的是GET和POST方法

复制代码
GET:
    用于请求指定的URL资源
    GET /index.html HTTP/1.1
    特性:指定资源经服务器端解析后返回响应内容

POST:
    ⽤于传输实体的主体,通常⽤于提交表单数据
    POST /submit.cgi HTTP/1.1
    特性:可以发送⼤量的数据给服务器,并且数据包含在请求体中。

四、状态码

在http响应中会给用户返回请求的结果,该结果以状态码的形式返回
最常⻅的状态码, ⽐如 200(OK), 404(Not Found), 403(Forbidden), 302(Redirect, 重定向), 504(Bad Gateway)

复制代码
301状态码:
    为永久重定向,表示请求的资源已经永久移到了新的位置
    这种情况下,服务器会在响应中添加⼀个Location头部,⽤于指定资源的新位置。这个Location
头部包含了新的URL地址,浏览器会⾃动重定向到该地址。
    HTTP/1.1 301 Moved Permanently\r\n
    Location: https://www.new-url.com\r\n

302状态码:
    临时重定向,请求的资源临时移到了新的位置
    服务器也会在响应中添加⼀个Location头部来指定资源的新位置。浏览器会暂时使⽤新的
URL进⾏后续的请求,但不会缓存这个重定向。
    HTTP/1.1 302 Found\r\n
    Location: https://www.new-url.com\r\n

总结:
    ⽆论是HTTP 301还是HTTP 302重定向,都需要依赖Location选项来指定资源的新位置。这个
Location选项是⼀个标准的HTTP响应头部,⽤于告诉浏览器应该将请求重定向到哪个新的URL地址。

五、http报头

六、http版本

HTTP(Hypertext Transfer Protocol,超⽂本传输协议)作为互联⽹中浏览器和服务器间通信的基⽯,经历了从简单到复杂、从单⼀到多样的发展过程。以下将按照时间顺序,介绍HTTP的主要版本、核⼼技术及其对应的时代背景。

复制代码
HTTP/0.9
核⼼技术:
• 仅⽀持GET请求⽅法。
• 仅⽀持纯⽂本传输,主要是HTML格式。
• ⽆请求和响应头信息。

时代背景:
• 1991年,HTTP/0.9版本作为HTTP协议的最初版本,⽤于传输基本的超⽂本HTML内容。
• 当时的互联⽹还处于起步阶段,⽹⻚内容相对简单,主要以⽂本为主。


HTTP/1.0
核⼼技术:
• 引⼊POST和HEAD请求⽅法。
• 请求和响应头信息,⽀持多种数据格式(MIME)。
• ⽀持缓存(cache)。
• 状态码(status code)、多字符集⽀持等。

时代背景:
• 1996年,随着互联⽹的快速发展,⽹⻚内容逐渐丰富,HTTP/1.0版本应运⽽⽣。
• 为了满⾜⽇益增⻓的⽹络应⽤需求,HTTP/1.0增加了更多的功能和灵活性。
• 然⽽,HTTP/1.0的⼯作⽅式是每次TCP连接只能发送⼀个请求,性能上存在⼀定局限。


HTTP/1.1
核⼼技术:
• 引⼊持久连接(persistent connection),⽀持管道化(pipelining)。
• 允许在单个TCP连接上进⾏多个请求和响应,提⾼了性能。
• 引⼊分块传输编码(chunked transfer encoding)。
• ⽀持Host头,允许在⼀个IP地址上部署多个Web站点。

时代背景:
• 1999年,随着⽹⻚加载的外部资源越来越多,HTTP/1.0的性能问题愈发突出。
• HTTP/1.1通过引⼊持久连接和管道化等技术,有效提⾼了数据传输效率。
• 同时,互联⽹应⽤开始呈现出多元化、复杂化的趋势,HTTP/1.1的出现满⾜了这些需求。


HTTP/2.0
核⼼技术:
• 多路复⽤(multiplexing),⼀个TCP连接允许多个HTTP请求。
• ⼆进制帧格式(binary framing),优化数据传输。
• 头部压缩(header compression),减少传输开销。
• 服务器推送(server push),提前发送资源到客⼾端。

时代背景:
• 2015年,随着移动互联⽹的兴起和云计算技术的发展,⽹络应⽤对性能的要求越来越⾼。
• HTTP/2.0通过多路复⽤、⼆进制帧格式等技术,显著提⾼了数据传输效率和⽹络性能。
• 同时,HTTP/2.0还⽀持加密传输(HTTPS),提⾼了数据传输的安全性。


HTTP/3.0
核⼼技术:
• 使⽤QUIC协议替代TCP协议,基于UDP构建的多路复⽤传输协议。
• 减少了TCP三次握⼿及TLS握⼿时间,提⾼了连接建⽴速度。
• 解决了TCP中的线头阻塞问题,提⾼了数据传输效率。

时代背景:
• 2022年,随着5G、物联⽹等技术的快速发展,⽹络应⽤对实时性、可靠性的要求越来越⾼。
• HTTP/3.0通过使⽤QUIC协议,提⾼了连接建⽴速度和数据传输效率,满⾜了这些需求。
• 同时,HTTP/3.0还⽀持加密传输(HTTPS),保证了数据传输的安全性。
相关推荐
奇树谦9 分钟前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
嵌入式阿蔡44 分钟前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
雷电小将军2 小时前
诡秘之主手游占卜家序列加点 诡秘之主手游占卜家怎么加点
服务器·网络·游戏·电脑·玩游戏
陈皮波比茶2 小时前
Python项目实战-网络机器人(爬虫)
开发语言·网络·爬虫·python·机器人
白猫不黑2 小时前
网络安全/信息安全专业学习路线与入行指南:从大学到岗位的完整规划
网络·学习·安全·web安全·网络安全·黑客技术
wWYy.3 小时前
Linux发送数据包的过程
linux·网络
云飞云共享云桌面3 小时前
自动化设备厂 10 人研发团队,如何共用一台服务器做 SolidWorks 建模?
运维·服务器·网络·3d·自动化·制造
小谢取证3 小时前
实战案例分享:用 AI 绕过模拟器反取证进行动态抓包,落地 APK 真实 IP
大数据·网络·人工智能
xqwxbl3 小时前
小微企业差旅出行不用愁2026年头部商旅平台怎么选?看这篇就够了
大数据·网络·人工智能
QH139292318803 小时前
NVIDIA H200 H300服务器
运维·服务器·开发语言·网络·信息与通信