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常用请求方法:

?

GET和POST的区别?

http和https区别

?常用状态码:

OSI七层网络模型

cookie,session,token鉴权机制

DNS解析过程

浏览器输入百度网址背后发生了什么



http协议是应用层的协议,在api测试维度我们只需要关注http完整的请求流程,请求方法,请求头,响应头,cookie请求流程,session请求流程,token的请求流程

在微服务的架构模式下,通信分为同步通信和异步通信(请求响应和异步请求响应)

http完整请求:

①客户端与服务的建立tcp连接请求(即三次握手建立连接)

②客户端向服务端发送request请求

③服务端response响应回复给客户端

④客户端与服务端之间关闭tcp连接请求(四次挥手断开连接)

三次握手和四次断开过程

三次握手:

序号:seq? 确认号:ACK? ?SYN:发起一个新连接? ?FIN:释放一个连接

1,客户端向服务器发送一段tcp报文,标记位:SYN,序号:seq=X,客户端进入SYN-SENT阶段

2,服务端接收到 客户端的TCP报文,结束LISTEN阶段,并返回一段TCP报文告诉客户端收到了数据。标志位为SYN和ACK,序号为seq=y,确认号为ack=x+1,随后服务器进入SYN-RCVD阶段

3,客户端接收到来自服务器端的tcp报文后,确认传输是正常的,结束SYN-SENT阶段,并返回最后一段tcp报文。标志为ACK,序号为seq=x+1,确认号为ack=y+1.随后客户端进入established阶段,服务器端进入established阶段

三次握手是为了防止丢包和传输错误?

四次挥手:?

1,c端想要释放连接,向s端发送一段tcp报文,随后进入fin-wait-1阶段,不发送但可以接收数据

2,s端接收到c端的tcp报文确认要释放连接,随后结束established阶段进入close-wait阶段,并返回tcp报文,表示收到了未准备好

3,s端再次向c端发送tcp报文告诉c端可以关闭了,随后进入last-ack阶段,并停止发送数据但可以接收c端的数据

4,c端收到s端的tcp报文,确认可以断开,进入time-wait阶段,并向s端发送一段报文,并断开连接进入close阶段

http常用请求方法

常用GET,PPST,PUT,DELETE,全部方法如下:?

GET和POST的区别?

1,get参数在url上,post在body里

2,post比get相对安全

3,get有字节限制,post没有

4,字面上get是获取,post是提交

http和https区别

1,https更安全

2,80端口,403端口

3,无证书,有证书

4,应用层,传输层

?常用状态码:

????????200:请求成功

? ? ? ? 301:永久重定向

? ? ? ? 302:临时重定向

? ? ? ? 400:错误的请求

? ? ? ? 401:未授权,一般是未登录没有访问权限

? ? ? ? 403:资源不可用,服务端理解请求但是不处理,通常是因为没有权限

? ? ? ? 404:请求的资源不存在

? ? ? ? 405:不被允许的请求

? ? ? ? 500:服务器内部错误

? ? ? ? 504:网关超时

OSI七层网络模型

cookie,session,token鉴权机制

cookie是存储在客户端记录客户信息的一小段文本,由服务器生成发送给浏览器,下一次请求时会把该cookie发送给服务器(组成:key value,有效域,失效时间,安全标志(https))

session是存储在服务器上,客户第一次发送请求,服务器生成一个sessionId,并返回给客户端通过cookie,客户端再次发送请求给服务器的时候带着cookie(有sessionId),服务器就知道发请求的是谁了

?

token是产生的过程也是服务端返回一个带签名的token,存储在客户端,再次请求的时候header里带上token,服务器以同样的算法对数据进行计算比较,和session相比,以token的形式,服务端不用存储sessionId了

DNS解析过程

用户输入www.baidu.com时,DNS解析过程为:

①浏览器先检查自身缓存中有没有解析过这个域名对应的ip地址,有的话解析结束

②缓存中没有,浏览器 会检查操作系统之前有没有解析过,就是c盘hosts文件设置该域名对应的ip,浏览器会首先使用这个ip

③未解析过,会请求本地域名服务器来解析这个域名,解析结果返回给用户,缓存到本地,解析结束

④请求本地域名服务器没有命中就会跳到root server域名服务器请求解析,根域名服务器返回给本地域名服务器,通过请求查到该网站注册的域名服务器,映射到目标ip返回给本地域名服务器,然后缓存这个域名和对应的ip,最后返回给用户,解析结束

浏览器输入百度网址背后发生了什么

1,解析url,检测是否合法

2,查看缓存,有就跳转,没有就继续搜索

3,DNS解析4,建立tcp连接

4,数据传输

5,响应结果可缓存则存入

6,浏览器发送异步请求

7,请求结束断开连接

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

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