| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 一篇文章看懂HTTP+WebSocket+计算机网络(附思维导图) -> 正文阅读 |
|
[网络协议]一篇文章看懂HTTP+WebSocket+计算机网络(附思维导图) |
HTTP协议
HTTP 超文本传输协议,是基于TCP/IP协议之上的应用层协议。 特点: 基于请求-响应的模式。 无状态保存:不保存之前发送过的请求或响应,为了实现保存功能引入了cookie。 无连接:服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP1.0是直接断开,1.1就是长连接机制。
一共有八种方法,以不同的方式操作资源: GET:发出获取资源的请求,只用在读取数据。 POST:提交数据,创建或修改资源。 PUT:只能修改已有字段的资源。 DELETE:删除Request—URI所表示的资源。 HEAD:发出资源请求,服务器不传回资源的文本部分。 TRACE:回显服务器收到的请求,用于测试或诊断。 OPTIONS:使服务器传回该资源所支持的所有HTTP请求的方法,可在CORS跨域资源共享时测试是否有访问权限。 CONNECT:通常用于SSL加密服务器的链接,管道方式的连接
数据存放位置:GET放在URL中(请求行)。POST放在请求体中。 数据限制:GET数据大小有限制(URL长度限制,IE最小为2083字节),POST没有。 安全性:GET安全性低,会被保存在历史记录中。
PUT是更新数据,因为PUT是幂等的,幂等就是如果两个请求相同,后一个请求会把第一个请求覆盖掉。而POST则不是幂等的,他是新增数据。 ?
常见的Content-Type 属性值有以下四种: (1)application/x-www-form-urlencoded:浏览器的原生form表单,按照key=val&的方式进行URI转码。 (2)multipart/form-data:通常表单POST上传文件时使用该方式。 (3)application/json:服务器消息主体是序列化后的JSON字符串。 (4)text/xml:主要用来提交XML格式的数据。 ? 五、HTTP迭代1、HTTP1.0到HTTP1.1的区别? ①引入长连接机制 1.0是一个请求响应后就马上关闭TCP连接。而1.1则基于TCP长连接机制(传输层才需要建立连接),一般几十秒内没有操作才断开连接。这样避免了频繁的三次握手和四次挥手,建立和关闭TCP连接带来的开销和时延。 ②管道机制实现同时发送多个HTTP请求 1.0一个请求发送后,必须等待响应才能发送下一个请求,而1.1可以同时发送多个请求,节约等待时长。 ③分块传输 1.0是content-length确定响应体长度。但数据过大或不断增大,则无法准确知道内容长度大小。1.1则采用流模式分块传输,每个数据块前指明大小,最后一个0表示结束。 ④断点传输 1.1将已传输的部分写入临时文件.temp/.download,当网络断开重连,HTTP请求报文中会添加已经传输部分的长度。 2、HTTP1.1到HTTP2.0的区别? ①二进制 1.1请求体可以是不同的格式,其他是文本形式,2.0则是完全的二进制格式,即帧。 ②I/O多路复用 2.0以前因为浏览器限制了同一个域名下的请求数量,页面要请求很多资源时会有队头阻塞的情况,而2.0基于二进制分帧可以同时交错的发送和请求数据,再重新组装。 ③服务器推送 2.0服务端可以对一个客户端请求发出多个响应,预计需求推送额外的资源给客户端,这样可以减少请求的次数,提高页面响应速度。 ④头信息压缩 1.1每次都要传输一样的请求字段(如cookie)。2.0将头信息压缩后再传输,且服务器和客户端同时维护一张头信息表,只发送索引即可。 3、页面有多张图片,HTTP是怎么加载的? HTTP1,浏览器对同域名最大TCP连接数为6,所以会请求多次。可以多域名部署解决。 HTTP2支持多路复用,可以在一个TCP里发送多个HTTP请求,一瞬间加载很多资源。 ? 六、HTTPS和HTTPHTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。 HTTPS和HTTP的区别主要如下: 1、HTTPS协议需要到ca申请证书,需要一定费用。 2、HTTP信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议,更安全。 3、HTTP是80端口,HTTPS是443。 七、HTTP状态码
304多好还是少好?304优点:提高网站访问速度,对有缓存的页面直接使用缓存。 304多缺点:内容源更新频繁的页面,搜索引擎蜘蛛抓取频率更高,访问量更多。 八、WebSocket是H5提供的一种浏览器与服务器进行全双工通信的网络技术,基于TCP连接,只需要完成一次握手后就能创建持久性的连接,且双向数据传输。即服务器和客户端都可以向对方主动推送消息。没有同源限制,协议标识符是ws/wss。 计算机网络计算机网络模型 ISO为了更好的使网络应用更为普及,推出了OSI参考模型
TCP的三次握手和四次挥手? TCP三次握手:客户端向服务器发送SYN,服务端返回 SYN ACK ,客户端再发送ACK。 TCP四次挥手:客户端向服务器发送连接释放请求,服务器接收后返回ACK确定包。但因为TCP连接是双向的,如果此时服务端还有数据没发完,会继续发送数据,结束后向客户端发送连接释放请求,客户端收到后发送ACK应答。 为什么建立连接只要三次而关闭连接却要四次? 因为服务端LISTEN状态下,当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。 TCP和UDP的区别 UDP无连接,不可靠传输,可同时对多个设备通信,适用于实时应用,例如视频会议。 TCP有连接,可靠传输(流浪控制、拥塞控制),只能一对一,适用于可靠的文件传输。 DNS解析过程 首先在浏览器缓存中查找对应的IP地址,若无进行下一步。 向本地DNS服务器发送请求,若本地DNS服务器有缓存则返回,没有则下一步。 本地DNS服务器分别向根域名服务器->顶级域名服务器->权威域名服务器发送请求,获取到IP地址后保存在缓存中,同时将结果返回给浏览器。 |
|
网络协议 最新文章 |
使用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/26 10:40:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |