Linux网络HTTP协议

1.认识URL

我们常说的"网站"其实就是URL

URL (统一资源定位符) 是用于唯一标识并访问互联网上资源的标准化字符串。其完整语法结构遵循以下通用格式:

<协议>://[<用户信息>@]<主机名>[:<端口>]/<路径>?<查询字符串>#<片段标识符>

各组成部分的术语定义如下:

  1. 协议 (Scheme) :指定访问资源所使用的应用层协议(如 http、https、ftp、mailto)。

  2. 用户信息 (Userinfo):可选的认证字段,通常包含用户名和密码,用于身份验证(现代应用中因安全风险已较少使用)。

  3. 主机 (Host):承载资源的服务器地址,可以是域名(FQDN)或 IP 地址。

  4. 端口 (Port):传输层协议(TCP/UDP)的入口点。若省略,则隐式使用协议的默认端口号。

  5. 路径 (Path):服务器上资源的具体层级或位置,通常以斜杠分隔的层次结构表示。

  6. 查询字符串 (Query) :由键值对组成的非层级数据,通常以 ? 起始,多个参数间用 & 分隔,用于向服务器传递动态参数。

  7. 片段标识符 (Fragment) :指向资源内部的次级定位点(如 HTML 文档中的某个锚点),以 # 起始,该部分仅在客户端本地处理,不发送至服务器。

2.HTPP协议请求与响应格式

2.1.HTTP协议请求

HTTP(HyperText Transfer Protocol,超⽂本传输协议)是⼀个⾄关重要的协议。它定义了客⼾端(如浏览器)与服务器之间如何通信,以交换或传输超⽂本(如HTML⽂档)。HTTP协议是客⼾端与服务器之间通信的基础。客⼾端通过HTTP协议向服务器发送请求,服务器收到请求后处理并返回响应。HTTP协议是⼀个⽆连接、⽆状态的协议,即每次请求都需要建⽴新的连接,且服务器不会保存客⼾端的状态信息。HTTP请求报文的格式以及具体样例如下。

HTTP的请求方法。

2.2.HTTP应答

HTTP协议应答报文分为,首行:版本号+状态码+状态码解释、报头、空行、响应正文组成。Header: 请求的属性, 冒号分割的键值对;每组属性之间使⽤\r\n分隔;遇到空⾏表⽰Header部分结束。

2.2.1.HTTP常见的Header

Content-Type:表示正文的数据类型(text/html等)。Content-Length: 正文的长度。Host:客户端告诉服务端需要的资源在哪个主机的哪个端口上。Referer:表示当前页面是从哪个页面跳转过来的。User-Agent:声明用户的操作系统和浏览器的版本信息。Location:通常搭配3xx状态码使用,告诉客户端接下来要去哪里访问资源。Cookie:用于在客户端存储少量信息,通常用于实现保持会话的功能。

3.HTTP的状态码

HTTP的状态码可以分为5个种类,分别是1xx到5xx,具体如下。

最常见的状态码有200(OK),404(Not Found),403(Forbidden),302(Redirect,重定向),504(Bad Gateway)。其中301和302都是重定向,只不过301(Moved Permanently)是永久跳转,搜索引擎会把权重、收录转移到新地址,浏览器会缓存重定向下次直接访问新地址。302(Found)是临时跳转,每次都要先走源地址再跳转到新地址。它们都依赖状Location选项。

相关推荐
一条破秋裤40 分钟前
【1112】Linux中断【整理】
linux·运维·服务器
CodeYp20192 小时前
第14讲:传输层协议 UDP
linux·udp
北京迅为2 小时前
案例分享 | RK182X算力卡:多路视频VLM监控,四路画面AI同时看懂,一句人话说清现场
linux·人工智能·嵌入式·rk3588·算力卡·rk182x
lzx_00214 小时前
Linux 进程(三) 从进程状态到僵尸进程、孤儿进程
linux·服务器
FlightYe16 小时前
音视频修炼之容器与协议(四):RTSP详解
android·linux·ffmpeg·音视频·dash
刘马想放假17 小时前
CANviz 使用指南|Linux 安装、DBC 解码、实时曲线与 J1939 实战
linux·python·websocket
kloc18 小时前
聊天室项目入口网关子服务的实现
linux·c++
GeW18 小时前
深圳APEC峰会倒计时:数据库与Linux运维的"隐形考场"
linux
梦到啥说啥19 小时前
Linux网络编程:UDP网络协议
linux·网络协议·udp
无足鸟ICT20 小时前
【RHCA+】ipcrm命令(删除IPC资源)
linux