请求http协议分析- (mysql-thinkphp) (5)
http协议
https://tools.ietf.org/pdf/rfc7231.pdf
https://www.w3.org/Protocols/
===================================================================================================================
1.http协议就是一个规定了,超文本传输的格式,互相传输的时候必须传那些内容的协议。是一份协议,规定大家必须按照这个格式来传。
HTTP 协议定义服务器端和客户端之间文件传输的沟通方式.
2.我们的网页就是一个http请求,一个请求,这个请求必须按照这个协议格式发送,不然别人不认识。如果每台浏览器都按照自己的格式发送文件,自己的格式解析文件,就会乱套。所以用这个协议来约束大家发送的内容格式。
举个文档里面的例子

这一页就规定了date的格式。还举了一个例子,规定了所有人传日期的时候都必须是这个格式的。
3.每一个请求都符合http协议,不然你也发不出去,一张图片,一个json,每一个都得按照这个格式发送的。
我们可以按f12看到这些请求的协议,举个例子

和协议规定的时间显示的一样。
4.我开百度出来

这里每一个图片,css都是一个超文本,超文本传输用超文本传输协议,http协议,返回的都是200。什么前端优化压缩成一张图片,就是减少Http的请求,就是这个,因为太慢了,减少请求,减少了请求解析header,三次握手的时间,两次并一次,是要快点。计算机的的有优点来就在于计算迭代快,所以cpu处理的是很快的,卡刻的就是文件读取传输浪费了很多时间。
为什么成功就是200,失败就是500,你们知道是为什么么,这个也是协议规定的,http协议它就是一份协议。见下图

5.其实你看f12就能看出协议的结构了

general/response(回应)/request(请求)/这显示的是请求的头部信息 response header。
6.所有的信息都是携带在协议里面传输的。get请求的时候,信息是携带在url上面的,post请求的时候,携带在body里面的。所以为什么post携带文件大,header里面你最多能装多少东西啊,它毕竟只是一个header啊。
一大串都丢get的我一直不能理解。

response回来的内容。
7.其实可以理解为传输就是一大段的文本内容,字符串数据包,浏览器把这些字符串内容展示出来了而已。传输的规范就是一份协议,它的传输过程,
7.1客户端连接到Web服务器。 客户端请求服务器,request 的内容发出去,发给了Request host的服务器,然后等待。

等待的时间
7.2然后这个数据包转到下一层偷偷的干了一个tcp/ip三次握手的事情,就在我们等待的时间里面。然后数据就传回来了,但是也可能是500。
抄了别人的图,http这个字节码包转到tcp/ip层,再分发出去。这个时候,流量器,就是客户端在等待,wait。等待到对方服务器相应回来发包并接受的时间是上面的time。

很多详细解释http协议的文章,都分析了很多传输过程,我一直很懵逼,其实http它是一个协议,它规定你干哪些大家都干的事情必须走哪些规范,传什么格式。从这个协议也能倒推,数据在传输的过程中,都干了些什么。
不得不提axios里面的代码,我觉得它就是写了协议,我也没有深入看,就是翻到了。

请求http协议分析- (mysql-thinkphp) (5)的更多相关文章
- MySQL协议分析
MySQL协议分析 标签: mysql 2015-02-27 10:22 1807人阅读 评论(1) 收藏 举报 分类: 数据库(19) 目录(?)[+] 1 交互过程 MySQL客户端与 ...
- MySQL协议分析(2)
MySQL协议分析(2) 此阶段是在压缩传输无加密条件下进行的协议分析 思路 结合Oracle官网的说明和自己用wireshark加python进行数据包分析 步骤 客户端与服务器端是否压缩的协商阶段 ...
- MySQL协议分析2
MySQL协议分析 议程 协议头 协议类型 网络协议相关函数 NET缓冲 VIO缓冲 MySQL API 协议头 ● 数据变成在网络里传输的数据,需要额外的在头部添加4 个字节的包头. . packe ...
- mixer: mysql协议分析
综述 要实现一个mysql proxy,首先需要做的就是理解并实现mysql通讯协议.这样才能通过proxy架起client到server之间的桥梁. mixer的mysql协议实现主要参考mysql ...
- mysql 协议分析
MYSQL Binlog协议分析 此处不讨论建立连接,验证和handshake的交互协议 Binlog协议 一个MYSQL 通信包由包头包体组成 包体根据具体的交互协议有自身的组成结构, 在binlo ...
- MySQL协议分析(1)
MySQL协议分析 此阶段的协议分析是在未压缩未加密情况下的协议分析 思路: 结合Oracle官网和自己用wireshark抓的网络数据包进行协议分析 官网说明 mysql包共分为4段,格式如下: 第 ...
- TLS握手协议分析与理解——某HTTPS请求流量包分析
https://xz.aliyun.com/t/1039 HTTPS简介 HTTPS,是一种网络安全传输协议,在HTTP的基础上利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护 ...
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...
- 蓝牙协议分析(7)_BLE连接有关的技术分析
转自:http://www.wowotech.net/bluetooth/ble_connection.html#comments 1. 前言 了解蓝牙的人都知道,在经典蓝牙中,保持连接(Connec ...
随机推荐
- Android Studio中 安卓模拟器 联网
方案一:之前做测试的时候发现虚拟机无法联网(浏览器打开 www.baidu.com, 显示 403 forbidden): 解决方案:关闭已经打开的虚拟机,进入到 SDK 安装目录下,按住 shift ...
- Cake ZOJ - 3537
题目链接 本题也是区间dp三角剖分板子题,只不过加入了判断是否是凸包,计算顺序要用凸包顺序(凸包板) #include<bits/stdc++.h> using namespace std ...
- selenium webdriver 模拟鼠标悬浮
/**模拟鼠标悬浮在某元素上 * @param driver * @param locator */ public static void moveToElement(WebDriver driver ...
- GO 回调实现
函数作为参数传递,实现回调. package main import "fmt" // 声明一个函数类型 type cb func(int) int func main() { t ...
- 牛茶冲天的ip命令
一.修改二层链路相关设置 1.修改网卡名称(修改前要先停止) ip link set eth0 name testname 2.修改网卡地址 ip link set eth0 address xxx ...
- vue配置、创建项目及运行
首先安装Node.js, npm i -g cnpm --registry=https://registry.npm.taobao.org 安装镜像 安装以后cnpm可以代替npm cnpm i -g ...
- Java基础 -2.4
字符型char类型 在任何的编程语言之中,字符都可以与int进行互相转换,也就是这个字符中所描述的内容可以通过int获取其内容所在的系统编码 public class ddd { public sta ...
- C语言入门---第九章 C语言指针
没学指针就是没学C语言! 指针是C语言的精华,也是C语言的难点. 所谓指针,也就是内存的地址,所谓指针变量,也就是保存了内存地址的变量.不过人们往往不会区分两者的概念,而是混淆在一起使用. ===== ...
- Community Cloud零基础学习(二)信誉等级设置 & Global Search设定
当我们创建了Community以后,我们需要对他进行定制页面来使community用户更好的使用.此篇主要描述两点,信誉等级设定以及Global Search 设定.其他的内容后期再慢慢描述. 一. ...
- 反射工具类【ReflectionUtils】
反射工具类[ReflectionUtils] 原创 2017年05月05日 00:45:43 标签: java / 反射 / reflection / 893 编辑 删除 import java.la ...