【每日一讲】HTTP协议

📅 2026/8/24 15:18:48
【每日一讲】HTTP协议
前面我们把HTTP放在应用层类比成你写在信纸上的**正文内容**。现在我们来深入看看这个“信”具体是怎么写的、有哪些格式要求。### ✉️ HTTP协议的本质一个“信件”规范HTTPHyperText Transfer Protocol超文本传输协议是一个应用层协议它规范了客户端比如你的浏览器和服务器之间是如何“写信”和“读信”的。它的核心模式很简单**由客户端发起请求Request服务器给出响应Response**。这个模式有几个特点* **基于请求/响应**永远是客户端先开口服务器被动回应。* **无状态**服务器不会记住你是谁每次请求都是“初次见面”。这也是为什么网站需要Cookie等技术来“记住”你的登录状态。* **可扩展**它设计得很灵活可以不断添加新功能。### 信件的格式请求与响应HTTP的消息格式非常规整无论是请求还是响应都由**四部分**组成1. **起始行 (Start Line)**一句话说明“要做什么”或“结果如何”。2. **请求头/响应头 (Headers)**一系列key: value格式的“备注”用来传递附加信息。3. **空行 (Empty Line)**表示头部结束。4. **消息正文 (Body)**实际传输的数据比如HTML、图片或表单提交的内容。#### 1. 请求 (Request)一个HTTP请求的起始行包含三个要素* **方法 (Method)**一个动词告诉服务器你想干什么。* **URL (Uniform Resource Locator)**统一资源定位符也就是你想访问的“网络地址”。* **版本号 (Version)**使用的HTTP协议版本如 HTTP/1.1。来看一个实际的POST请求示例httpPOST /companyLogin.do HTTP/1.1Host: job.xjtu.edu.cnContent-Type: application/x-www-form-urlencodedUser-Agent: Mozilla/5.0 …空行usernameyournamepassword123456* **起始行**告诉服务器我要用POST方法在job.xjtu.edu.cn这个网站执行/companyLogin.do这个登录操作。* **请求头**Host指定了服务器地址Content-Type告诉服务器正文是表单格式User-Agent则说明了客户端是哪种浏览器。* **消息正文**包含了具体的登录用户名和密码。#### 2. 响应 (Response)服务器处理完请求后会返回一个响应其起始行是**状态行*** **版本号**如 HTTP/1.1。* **状态码 (Status Code)**一个三位数字表示请求结果。* **原因短语 (Reason Phrase)**对状态码的简短描述。一个典型的成功响应如下httpHTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 1024空行 html…网页内容… /html* **起始行**200 OK 明确告诉浏览器“请求成功”* **响应头**Content-Type: text/html告诉浏览器返回的内容是HTML网页Content-Length: 1024表示正文有1024个字节长。* **消息正文**就是浏览器要渲染的HTML代码。### ️ 核心“工具箱”方法、状态码与头字段#### 1. 常用的请求方法 (Methods)这些“动词”告诉服务器你的具体意图方法描述类比**GET**请求获取一个资源。跟图书馆管理员说“我想**看**那本书。”**POST**向服务器提交数据通常会导致状态变化。跟管理员说“我要**提交**一份新的借阅申请。”**PUT**用请求的内容**替换**掉目标资源。跟管理员说“我要用这个新版本**替换**掉那本书。”**DELETE**删除指定的资源。跟管理员说“请**删除**那本书。”**HEAD**类似GET但**只获取响应头**不获取正文。只想看看书的**目录和封面**判断是否需要借阅。这里有两个重要概念* **安全 (Safe)**像GET和HEAD这样只读不写的方法是安全的。* **幂等 (Idempotent)**指无论执行多少次效果都一样。GET、PUT、DELETE都是幂等的但POST不是多次提交可能会创建多个订单。#### 2. 重要的状态码 (Status Codes)状态码告诉你请求是成功还是出了什么差错。它们被分为五大类* **1xx (信息)**请求已收到继续处理。* **2xx (成功)**操作被成功接收并处理。* 200 OK一切正常。* 201 Created新资源创建成功。* **3xx (重定向)**需要进一步操作才能完成请求。* 301 Moved Permanently资源永久搬家了。* 304 Not Modified资源没变化直接用缓存吧。* **4xx (客户端错误)**请求有误是客户端的问题。* 400 Bad Request服务器听不懂你的请求。* 401 Unauthorized需要身份验证。* 403 Forbidden服务器拒绝访问。* 404 Not Found服务器上找不到这个资源最常见的“网页不存在”。* **5xx (服务器错误)**服务器处理请求时出错了。* 500 Internal Server Error服务器内部发生错误。* 502 Bad Gateway网关或代理服务器收到了无效响应。* 503 Service Unavailable服务器暂时无法处理请求比如太忙或停机维护。#### 3. 常见的头字段 (Headers)头字段是请求和响应中的“备注”用来传递各种控制信息。**常见请求头 (Request Headers)*** Host**必须**指定目标服务器的主机名和端口号。* User-Agent标识发起请求的客户端类型。* Accept告诉服务器客户端能理解哪些内容格式。* Cookie携带之前服务器设置的状态信息。* Referer告诉服务器你是从哪个页面跳转过来的。**常见响应头 (Response Headers)*** Content-Type告诉客户端返回内容的类型。* Content-Length指明响应正文的字节大小。* Set-Cookie让客户端浏览器保存一个Cookie。* Cache-Control告诉客户端和代理如何缓存这个响应。* Location用于重定向告诉客户端新的资源在哪里。### 协议的演进从HTTP/1.1到HTTP/3和你之前学的网络分层一样HTTP协议本身也在不断“进化”以解决新问题。* **HTTP/1.1 (1997年)**奠定了基石支持**持久连接**省去了反复握手的开销和**管道化**。但它有个“**队头阻塞**”问题必须按请求顺序返回响应前面的请求慢了后面的都得排队等着。* **HTTP/2 (2015年)**主要解决性能问题。核心改进是**多路复用**在一个连接里可以同时发送多个请求和响应彻底解决了队头阻塞同时引入了**二进制帧**传输更高效和**头部压缩**减少开销。* **HTTP/3**最新的标准它把底层的传输协议从**TCP换成了基于UDP的QUIC协议**。这解决了TCP协议本身的队头阻塞问题在弱网环境下连接更快、更稳定。### HTTPS HTTP 加密最后我们常说的HTTPS其实就是**HTTP SSL/TLS加密层**。它通过在HTTP和TCP之间加一层“保险”解决了HTTP明文传输带来的三大安全隐患1. **加密传输**内容加密别人无法窃听。2. **身份验证**通过数字证书确认你访问的是真正的服务器而不是假冒的。3. **完整性校验**确保数据在传输过程中没有被篡改。这个“加密层”完美地体现了网络分层的好处应用层的HTTP协议代码**完全不用改动**只需在传输层加上TLS就实现了安全升级。从设计上看HTTP协议就像我们之前聊的网络分层一样每个部分各司其职、清晰明确。关于网络安全技术储备网络安全是当今信息时代中非常重要的一环。无论是找工作还是感兴趣黑客都是未来职业选择中上上之选为了保护自己的网络安全学习网络安全知识是必不可少的。如果你是准备学习网络安全黑客或者正在学习下面这些你应该能用得上①网络安全学习路线②20份渗透测试电子书③安全攻防357页笔记④50份安全攻防面试指南⑤安全红队渗透工具包⑥网络安全必备书籍⑦100个漏洞实战案例⑧安全大厂内部视频资源⑨历年CTF夺旗赛题解析一、网络安全黑客学习路线网络安全黑客学习路线形成网络安全领域所有的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。二、网络安全教程视频我们在看视频学习的时候不能光动眼动脑不动手比较科学的学习方法是在理解之后运用它们这时候练手项目就很适合了。三、网络安全CTF实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这里带来的是CTFSRC资料HW资料毕竟实战是检验真理的唯一标准嘛~四、网络安全面试题最后我们所有的作为都是为就业服务的所以关键的临门一脚就是咱们的面试题内容所以面试题板块是咱们不可或缺的部分这里我给大家准备的就是我在面试期间准备的资料。网安其实不难难的是坚持和相信自己我的经验是既然已经选定网安你就要相信它相信它能成为你日后进阶的高效渠道这样自己才会更有信念去学习才能在碰到困难的时候坚持下去。机会属于有准备的人这是一个实力的时代。人和人之间的差距不在于智商而在于如何利用业余时间只要你想学习什么时候开始都不晚不要担心这担心那你只需努力剩下的交给时间这份完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】