IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HTTP 知识点 -> 正文阅读

[网络协议]HTTP 知识点

HTTP

? HTTP(HyperText Transfer Protocol),超文本传输协议。

简单的 HTTP 协议

HTTP 是不保存状态的协议

? HTTP 是一种不保存状态,即无状态协议。

? 使用 HTTP 协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。

HTTP 方法

GET:获取资源

? GET 方法用来请求访问已被 URI 识别的资源。

POST:传输实体主体

? POST 方法用来传输实体的主体。

PUT:传输文件

? PUT 方法用来传输文件。

HEAD:获得报文首部

? HEAD 方法用来请求访问已被 URI 识别的资源,只是不返回报文主体部分。用于确认 URI 的有效性及资源更新的日期时间等。

DELETE:删除文件

? DELETE 方法用来删除文件。

OPTIONS:询问支持的方法

? OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法。

注:方法名要用大写字母。

持久连接

? 在 HTTP 协议的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP 连接。当使用浏览器浏览一个包含多张图片的 HTML 页面时,在发送请求访问 HTML 页面资源的同时,也会请求该 HTML 页面里包含的其他资源。因此,每次的请求都会造成无谓的 TCP 连接建立和断开,增加通信量的开销。

? 为了减少通信量的开销,HTTP/1.1 采用了持久连接的方法。持久连接的特点是只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。

管线化

? 以前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术可以不用等待响应直接发送下一个请求。这样就能够做到同时发送多个请求,而不需要一个接一个地等待响应了。

cookie

? HTTP 协议虽然是一个无状态协议,但是有了 Cookie 技术就可以管理状态了。Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。

? Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。

? 服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

没有 Cookie 信息状态下的请求
在这里插入图片描述
第2次以后(存有 Cookie 信息状态)的请求
在这里插入图片描述

HTTP 报文

请求报文(上)和响应报文(下)

在这里插入图片描述

请求行

? 包含用于请求的方法,请求 URI 和 HTTP 版本。

状态行

? 包含表明响应结果的状态码,原因短语和 HTTP 版本。

状态码

? 状态码是当客户端向服务器端发送请求时,描述返回的请求结果。通过状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。

? 状态码以 3 位数字和原因短语组成。数字中的第一位指定了响应类别,有以下 5 种。

类别原因短语
1XX信息性状态码接收的请求正在处理
2XX成功状态码请求正常处理完毕
3XX重定向状态码需要进行附加操作以完成请求
4XX客户端错误状态码服务器无法处理请求
5XX服务器错误状态码服务器处理请求出错
2XX 成功

? 2XX 的响应结果表明请求被正常处理了。

200 OK

? 表示从客户端发来的请求在服务器端被正常处理了。

204 No Content

? 表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。

206 Partial Content

? 表示客户端进行了范围请求,而服务器成功执行了这部分请求。

3XX 重定向

? 3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。

301 Moved Permanently

? 永久性重定向。说明请求的资源已经不存在了,需改用新的 URI 再次访问。

302 Found

? 临时性重定向。说明请求的资源还在,但暂时需要用另一个 URI 来访问。

4XX 客户端错误

? 4XX 的响应结果表示客户端发生错误。

400 Bad Request

? 表示请求报文中存在语法错误。

403 Forbidden

? 表示对请求资源的访问被服务器拒绝了。

404 Not Found

? 表示服务器上无法找到请求的资源。

5XX 服务器错误

? 5XX 的响应结果表明服务器本身发生错误。

500 Internal Server Error

? 表示服务器端在执行请求时发生了错误。

503 Service Unavailable

? 表示服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

与 HTTP 协作的 Web 服务器

代理、网关、隧道

代理

? 代理服务器接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。

在这里插入图片描述

? 代理分为缓存代理和透明代理。

缓存代理

? 代理转发响应时,缓存代理会预先将资源的副本缓存在代理服务器上。当代理再次接收到对相同资源的请求时,就可以不从源服务器那里获取资源,而是将之前缓存的资源作为响应返回。

透明代理

? 转发请求或响应时,不对报文做任何加工的代理被称为透明代理。反之,对报文内容进行加工的代理被称为非透明代理。

网关

? 网关能使通信线路上的服务器提供非HTTP协议服务。

在这里插入图片描述

隧道

? 通过隧道的传输,可以和远距离的服务器安全通信。
在这里插入图片描述

缓存

? 缓存是指代理服务器或客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间。

在这里插入图片描述

缓存的有效期限

在这里插入图片描述

客户端的缓存

? 缓存不仅可以存在于缓存服务器内,还可以存在客户端浏览器中。缓存如果有效,就不必再向服务器请求相同的资源了,可以直接从本地磁盘内读取。

? 当判定缓存过期后,会向源服务器确认资源的有效性。若判断缓存失效,浏览器会再次请求新资源。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 13:08:02  更:2022-10-17 13:11:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 6:21:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码