| |
|
开发:
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协议是应用层的协议,在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地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 17:19:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |