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响应头中的Server字段为空的“灵异事件“ -> 正文阅读

[网络协议]遇到了http响应头中的Server字段为空的“灵异事件“

前言

祖传代码坑多是众所周知的事!这不,前段时间就遇到了一个坑,即手撸的httpclient模块遇到响应报文中的响应头中某个字段值为空时就出现“解析”异常,导致没有响应回调到上层业务!这个httpclient是用c++来写的,用tcp创建连接后发http请求与处理http server的响应。出现该异常时收到的响应报名中Server的值竟然是空值!跟服务器开发以及运维同事排查不是web server配置问题后,判断是用户网络链路的某个网关或网络代理搞的鬼—偷偷的追加了Server但该值为空。记得以前刚工作那会(08年)搞浏览器研发的时候,就经常遇到有些移动网关会更换或增加http的请求头与响应头的内容!

响应头中的Server字段

在这里插入图片描述
如上规范的描述上提到网络代理是不能修改该字段的值的,但规范是规范实际实现又是另一回事了呀!还有就是该字段是是由web服务器(如ngix等)配置的,不是由web应用是设置的!
在这里插入图片描述

http的实现

首先,http是基于tcp来实现的,即我们需要使用tcp跟web服务器建立一个长连接。然后,双方基于http规范去收发数据(去交互一来一回)。通平情况一个tcp长连接处理一个http请求和处理http响应后就会close连接。只有在支持keep-alive(在keep-alive的工作模式下)一个tcp长连接实例(一般是一个域名对应一个实例)在他的生命周期内会处理多次http的请求与响应。

http的报文格式

  • 报文是于行为小单位为组织来组织的,其中一个空行把一次完整的报文为分两个部份,一个是报文头部跟报文主体。
  • 报文分为请求报文跟响应报文,名符其实,请求报文是请求方组织与发送出去的。响应报文当然是响应方组织与回复的。这两种报名主要区别在于报文首行的内容组织。
  • 在这里插入图片描述

http的请求报名

在这里插入图片描述
注意:当请求方法为get方法,url的值是path + query参数的,所以url很长的get请求是危险的事。要不就是httpclient(httpp的实现者)没有处理好这个url的长度,或htpp代码或网关没有对get请求的url的长度有限制等等都会达到请求失败!

http的响应报文

在这里插入图片描述

参考资料

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

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