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),保证了数据传输的安全性。
相关推荐
cliproxydaili2 小时前
真家宽IP vs 数据中心IP:Cliproxy为何成为跨境电商首选?
网络·网络协议·tcp/ip
Yeats_Liao2 小时前
Java网络编程(七):NIO实战构建高性能Socket服务器
java·网络·nio
就不爱吃大米饭3 小时前
ChatGPT被降智怎么办?自查方法+恢复指南
网络·人工智能·chatgpt
歪歪1004 小时前
介绍一下HTTP和WebSocket的头部信息
网络·websocket·网络协议·http·网络安全·信息与通信
HaleyTiger5 小时前
新电脑(包含联想电脑)访问正常的系统加载不出页面,但是网络telnet又是通畅的(PG数据库连接public模式下能看到表及数据,其他模式下的表和数据看不了)
网络
ajassi20007 小时前
开源 C# 快速开发(十一)线程
http·开源·c#
问道飞鱼8 小时前
【服务器知识】HTTP 请求头信息及其用途详细说明
运维·服务器·nginx·http·http头信息
鸠摩智首席音效师15 小时前
如何在 Apache 中启用 HSTS 以增强网络安全性 ?
网络·apache
alex10015 小时前
Context Compliance Attack:大模型安全的新兴威胁与防御策略
网络·安全·web安全