HTTP 协议(Ⅲ)

server/2025/2/22 1:14:55/

目录

一、HTTP 协议概念

二、无状态协议

三、HTTP1.0 & HTTP1.1

 四、请求协议和响应协议

五、请求协议

1.浏览器监视请求和响应

2. HTTP请求

2.1 请求的结构

2.2 GET请求

2.3 POST请求

3. HTTP响应

3.1 响应的结构

3.2 常见响应头字段

3.3 常见状态码

4. 请求和响应的总结


HTTP协议是客户端与服务器通信的“语言”,规定了请求和响应的格式与规则。服务器是HTTP协议的执行者,接收客户端的HTTP请求,处理后返回HTTP响应。两者的关系是:HTTP协议定义了交互方式,服务器是实现和响应协议的主体。

一、HTTP 协议概念

HTTP,即超文本传输协议。所有浏览器都可以发出http协议。

协议:就是规定的文本格式!例如写本书也要有格式,写总结也有格式。当然客户端发 送请求也要有格式,这个格式是已经约定的格式,所以服务器端按请求格式来获取请求信息, 然后服务器端再按照响应格式来响应,当然客户端还要按响应的格式来解析。

二、无状态协议

HTTP 是无状态协议,必须必须理解这一点!!!

所谓无状态,就是客户端发送一个请求,服务器返回一个响应,然后就断开连接了

无状态协议的好处,当然是效率高了,用户连接一下就断开,当用户再次发送请求时, 再连接,然后在响应之后再次断开。如果用户在服务器上找到了自己想看的小说,那么服务器只是把小说的内容(html)发送给用户的浏览器,然后用户的浏览器显示已经发送到本地的html,其实这时已经与服务器断开连接了。用户可能会看很久,但这不会占用服务器 的任何资源!

即实现了随用随断开。

三、HTTP1.0 & HTTP1.1

特性HTTP/1.0HTTP/1.1
连接方式默认非持久连接,每次请求后关闭连接默认持久连接(Keep-Alive),支持多个请求/响应
Host 头不支持 Host 头,无法区分同一 IP 上的多个域名支持 Host 头,支持虚拟主机
响应头响应头较简单,功能有限增加了更多响应头字段(如 Content-LengthTransfer-Encoding),支持分块传输
缓存机制缓存依赖于 Expires 头,机制简单引入 Cache-Control,支持强缓存和协商缓存
错误处理状态码较少,错误处理简单增加更多状态码,提供更详细的错误信息
性能优化性能较差,每次请求都需要建立和关闭连接性能提升,持久连接减少连接开销
应用场景已基本被 HTTP/1.1 替代,现代服务器很少使用广泛应用于现代 Web 服务器,是主流协议之一

 四、请求协议和响应协议

无论是请求协议还是响应协议,都是由如下部分构成的: 

请求(或响应)首行;

请求(或响应)头信息;

空行;

请求(或响应)正文。

五、请求协议

1.浏览器监视请求和响应

  • 功能:通过浏览器的开发者工具可以监视HTTP请求和响应,获取完整的请求和响应信息。

  • 浏览器支持

    • Firefox:支持监视功能。

    • Google Chrome:内置此功能,无需安装。

2. HTTP请求

2.1 请求的结构
  • 请求首行:包含请求方法(如GET或POST)、请求路径和HTTP协议版本。

    • 示例:GET /hello/index.jsp HTTP/1.1

  • 请求头:包含客户端向服务器发送的附加信息。

  • 请求正文:GET请求没有正文,POST请求有正文。

2.2 GET请求
  • 特点

    • 请求参数通过URL传递,容量有限(通常不超过1024KB)。

    • 没有请求正文,只有请求头。

  • 请求头字段

    • Host:请求的主机名。

    • User-Agent:客户端的浏览器和操作系统信息。

    • Accept:客户端可接受的文档类型。

    • Accept-Language:客户端支持的语言。

    • Accept-Encoding:支持的压缩格式。

    • Connection:连接方式(如keep-alive)。

    • Cookie:客户端存储的Cookie信息。

2.3 POST请求
  • 特点

    • 请求正文包含表单数据。

    • 常用于提交表单数据。

  • 请求头字段

    • Referer:请求来源页面。

    • Content-Type:表单数据的编码类型(如application/x-www-form-urlencoded)。

    • Content-Length:请求正文的长度。

  • 请求正文

    • 示例:username=hello,表示表单中输入的数据。

3. HTTP响应

3.1 响应的结构
  • 响应首行:包含HTTP协议版本、状态码和状态码的解释。

    • 示例:HTTP/1.1 200 OK

  • 响应头:包含服务器向客户端发送的附加信息。

  • 响应正文:通常是HTML代码。

3.2 常见响应头字段
  • Server服务器的版本信息。

  • Content-Type:响应正文的编码格式。

  • Content-Length:响应正文的长度。

  • Set-Cookie服务器发送给客户端的Cookie。

  • Date:响应的时间。

3.3 常见状态码
  • 200 OK:请求成功。

  • 404 Not Found:未找到请求的资源。

  • 500 Internal Server Error服务器内部错误。

  • 其他情况:通常是格式不匹配等问题。

4. 请求和响应的总结

  • 请求方法

    • GET:用于获取资源,无正文,参数在URL中。

    • POST:用于提交数据,有正文,数据在请求正文中。

  • 请求首行请求方法 URL HTTP/1.1

  • 响应首行HTTP/1.1 状态码 状态码的解释

  • 响应正文:通常是HTML代码。


http://www.ppmy.cn/server/169712.html

相关文章

React进阶之前端业务Hooks库(一)

前端业务Hooks库 项目结构实现useToggleuseToggle/index.ts单测packages/hooks/src/\_test_/index.test.tspackages/hooks/src/useToggle/\_tests_/index.test.ts打包实现gulp打包gulpfiles.js根目录/gulpfile.jswebpack打包webpack.config.jspackages/hooks/package.json使用e…

tailwindcss 前端 css 框架 无需写css 快速构建页面

版本:VUE3 TS 框架 vite 文章中使用tailwindcss 版本: ^3.4.17 简介: Tailwind CSS 一个CSS 框架,提供组件化的样式,直接在HTML 中编写样式,无需额外自定义CSS ,快速! 简洁&#…

网络安全的坚固盾牌· FireEye

FireEye 网络安全的核心是多向量虚拟执行 (MVX) 和智能驱动分析 (IDA) 技术。MVX 是一种无特征码的动态分析引擎,可检查可疑的网络流量,以识别逃避传统基于签名和策略的防御的攻击。IDA 是上下文动态规则引…

【Python爬虫(13)】解锁动态网页爬取:从原理到实战

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…

python入门笔记5-集合与字典

元组 Python 的元组(tuple,简写为tup)与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号​()​,列表使用方括号​[]​。 好处就是节省内存。 集合 集合是无序、不重复元素的容器。 用 {} 或 set() 创建…

ref() 和 reactive()响应性 浅解

文章目录 1. ref() 和 reactive() 的区别2. 解构 详解2.1. 什么是解构2.2. 解构避免丢失响应性的办法2.2.1. 解决方案:toRefs() 保持响应性2.2.2. 解决方案: toRef()保持响应性 3. 最佳实践 在 Vue 3 中,ref() 和 reactive() 都是用于响应式数…

iOS 中使用 FFmpeg 进行音视频处理

在 iOS 中使用 FFmpeg 进行音视频处理,通常需要将 FFmpeg 的功能集成到项目中。由于 FFmpeg 是一个 C 库,直接在 iOS 中使用需要进行一些配置和封装。 1. 在 iOS 项目中集成 FFmpeg 方法 1:使用 FFmpeg 预编译库 下载 FFmpeg iOS 预编译库: 可以从以下项目中获取预编译的 …

拆解微软CEO纳德拉战略蓝图:AI、量子计算、游戏革命如何改写未来规则!

2025年2月19日 知名博主Dwarkesh Patel对话微软CEO萨蒂亚纳德拉 在最新访谈释放重磅信号:AI将掀起工业革命级增长,量子计算突破引爆材料科学革命,游戏引擎进化为世界模拟器。 整个视频梳理出几大核心观点,揭示科技巨头的未来十年…