Linux网络HTTP协议

1.认识URL

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

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

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

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

  1. 协议 (Scheme) :指定访问资源所使用的应用层协议(如 httphttpsftpmailto)。

  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选项。

相关推荐
橙子也要努力变强5 小时前
volatile与信号
linux·服务器·c++
蜡笔小新拯救世界5 小时前
部分安全笔记总结
linux·网络·web安全
醇氧5 小时前
WSL 安装 Ubuntu 完整步骤(Windows 10/11 通用,极简无脑版)
linux·windows·ubuntu
中微子5 小时前
养虾小妙招:如何用 OpenClaw 把 Claude Code 调教成你的专属打工仔
linux·人工智能
TeDi TIVE5 小时前
Linux下MySQL的简单使用
linux·mysql·adb
ERBU DISH6 小时前
Linux下启动redis
linux·redis·bootstrap
行者-全栈开发6 小时前
Linux 核弹级高危漏洞 CVE-2026-31431 完整修复指南
linux·运维·服务器·ci/cd·devops·cve·核弹级高危漏洞
楼田莉子7 小时前
Linux网络:数据链路层
linux·服务器·开发语言·网络·c++·后端
fish_xk7 小时前
Linux基础指令。
linux·运维·服务器