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是客户端浏览器等与Web服务器之间的应用层通信协议,http协议非常重要,是互联网上应用最为广泛的一种协议,所有www文件都必须遵守这个标准。

一、HTTP报文相关概念

HTTP报文就是用于HTTP协议交互的信息,有请求报文和响应报文。请求端,即客户端的报文为请求报文,响应端,即服务器的叫做响应报文。

它本身是由多行数据构成的字符串文本(用CR+LF作为换行符)。报文大致可以分为报文首部和报文主体两块,两者由最初出现的空行(CR+LF)来划分,报文一定要有报文首部,但不一定有报文主体

HTTP在传输数据时可以按照数据原貌直接传输,也可以在传输过程中通过编码提升传输效率。通过在传输时编码,能有效地处理大量的访问请求,但同时编码的操作需要由计算机来完成,在提高传输速率的同时,不可避免地会因此消耗更多的CPU等资源

二、报文主体和实体主体的差异

通常,报文主体是等于实体主体。不过当传输过程中进行编码操作的时候,实体主体的内容就会发生变化,此时两者便有了差异。

在HTTP通信中,请求的编码实体资源尚未完全传输完成时,浏览器是无法显示请求页面,但在传输大容量数据的时候,可以通过把数据切分成多块,这样能让浏览器逐步显示页面,这种把实体主体分块的方法叫做分块传输编码(chunked)。分块传输编码将其分成多块,每一块会用16进制数来标记大小,实体最后会用“0(CR+LF)”来标记。

传输编码使用 Transfer-Encoding 首部进行标记,在HTTP/1.1 协议里,它只有 chunked 这一个取值,表示分块编码。
在HTTP2.0不支持HTTP/1.1语义下的chunked模式的——因为它的DATA帧是天然的chunked模式,这就是最容易出现问题的地方。客户端请求基本上都是chunked模式,所以当升级到HTTP2后就会出现问题。

三、状态码的类别

HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。(来源于百度百科)

状态码由5种类别,通过3位数字中的第一位来区别不同的类别。

类别原因短语
1xxInformational接收的请求正在处理
2xxSuccess请求正常处理完毕
3xxRedirection需要进行附加操作
4xxClient Error服务器无法处理请求
5xxServer Error服务器处理请求出错

几个常见的状态码:
200 OK:表示请求已经正常处理
204 Not Content:请求处理成功,但没有资源
304 Not Modified:资源已找到,但并不符合条件请求(304返回时,不包含任何响应的主体部分,304虽然被划分在3xx类别中,但是和Redirection(重定向)没有关系
400 Bad Request:请求报文中存在语法错误
403 Forbidden:访问被服务器拒绝了
404 Not Found:服务器上没有请求的资源。除此之外,也可以是服务器端拒绝请求并且不想说明理由时候返回的状态码。
503 Service Unavailable:表明服务器暂时处于超负荷或停机维护。

四、通信数据转发程序

通信数据转发程序:代理、网关、隧道

代理

代理是一种具有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。
优点:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志等。
分类基准:
①是否使用缓存?缓存代理:非缓存代理
②是否修改报文?非透明代理:透明代理

网关

网关是转发其他服务器通信数据的服务器,接收从客户端发来的请求时,它就像自己拥有资源的源服务器一样对请求做出处理。
优点:网关的工作机制与代理相似,而网关可以使通信线路上的服务器提供非HTTP协议服务利用网关可以提高通信的安全性,因此可以在客户端与网关之间的通信线路上加密以确保连接安全。

隧道

隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序。
优点:隧道的目的的确保客户端与服务器进行安全的通信

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:34:57  更:2022-10-31 12:36:32 
 
开发: 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年11日历 -2024/11/25 21:52:58-

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