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+WebSocket+计算机网络(附思维导图) -> 正文阅读

[网络协议]一篇文章看懂HTTP+WebSocket+计算机网络(附思维导图)

HTTP协议

  • HTTP协议
  • 协议简介

HTTP 超文本传输协议,是基于TCP/IP协议之上的应用层协议。

特点:

基于请求-响应的模式。

状态保存:不保存之前发送过的请求或响应,为了实现保存功能引入了cookie。

无连接:服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP1.0是直接断开,1.1就是长连接机制。

  • HTTP的请求方法
  1. HTTP有几种请求方法?

一共有八种方法,以不同的方式操作资源:

GET:发出获取资源的请求,只用在读取数据

POST:提交数据,创建或修改资源

PUT:只能修改已有字段的资源。

DELETE:删除Request—URI所表示的资源。

HEAD:发出资源请求,服务器不传回资源的文本部分。

TRACE:回显服务器收到的请求,用于测试或诊断。

OPTIONS:使服务器传回该资源所支持的所有HTTP请求的方法,可在CORS跨域资源共享时测试是否有访问权限。

CONNECT:通常用于SSL加密服务器的链接,管道方式的连接

  1. GET与POST的区别?

数据存放位置:GET放在URL中(请求行)。POST放在请求体中。

数据限制:GET数据大小有限制(URL长度限制,IE最小为2083字节),POST没有。

安全性:GET安全性低,会被保存在历史记录中。

  1. PUT与POST的区别?

PUT是更新数据,因为PUT是幂等的,幂等就是如果两个请求相同,后一个请求会把第一个请求覆盖掉。而POST则不是幂等的,他是新增数据。

?

  • 常见的HTTP请求头

Accept

浏览器能够处理的内容类型

Accept-Charset

浏览器能够显示的字符集

Accept-Encoding

浏览器能够处理的压缩编码

Accept-Language

浏览器当前设置的语言

Connection

浏览器与服务器之间连接的类型

Cookie

当前页面设置的任何Cookie

Host

发出请求的页面所在的域

Referer

发出请求的页面的URL

User-Agent

浏览器的用户代理字符串

  • 常见的HTTP响应头

Date

rfc822格式表示消息发送的时间

server

服务器名称

Connection

连接的类型

Cache-Control

控制HTTP缓存

content-type

后面的文档属于什么MIME类型

常见的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和HTTP

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。

HTTPS和HTTP的区别主要如下:

1、HTTPS协议需要到ca申请证书,需要一定费用。

2、HTTP信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议,更安全。

3、HTTP是80端口,HTTPS是443。

七、HTTP状态码

1xx

请求正在处理

2xx

请求正常处理完毕

200

正常处理

204

正常处理但无需服务端返回内容

206

响应指定范围的实体内容

3xx

重定向

301

永久重定向,已分配新的URI

302

临时重定向,资源临时被分配了新的 URI

303

资源存在着另一个 URI,应使用GET方法获取资源

304

告诉客户端可以直接使用缓存的内容

307

临时重定向,保持方法不变重新请求新URI

4xx

客户端错误码

400

请求报文中存在语法错误

401

需要有通过HTTP认证的认证信息

403

请求资源的访问被服务器拒绝了

404

服务器上无法找到请求的资源

405

服务器禁止使用该请求方法

5xx

服务器错误状态码

500

服务器执行时发生错误

502

网关或代理服务器错误

503

服务器暂时超负荷或正在停机维修

504

超时未得到响应

304多好还是少好?

304优点:提高网站访问速度,对有缓存的页面直接使用缓存。

304多缺点:内容源更新频繁的页面,搜索引擎蜘蛛抓取频率更高,访问量更多。

八、WebSocket

是H5提供的一种浏览器与服务器进行全双工通信的网络技术,基于TCP连接,只需要完成一次握手后就能创建持久性的连接,且双向数据传输。即服务器和客户端都可以向对方主动推送消息。没有同源限制,协议标识符是ws/wss。

计算机网络

计算机网络模型

ISO为了更好的使网络应用更为普及,推出了OSI参考模型

ISO

TCP/IP

作用

举例

应用层

应用层

为应用程序提供服务

HTTP/HTTPS/FTP

表示层

数据加密、编码和转换

base64对数据编码

会话层

建立、管理和维护会话

单工、半双工和全双工

传输层

传输层

端到端的连接

TCP/UDP,端口号

网络层

网络层

IP寻址及路由选择

IP寻址建立两个节点之间的连接

数据链路层

数据链路层

组帧、物理编址

物理层

物理层

物理层

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地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 13:13:40  更:2021-12-13 13:14:19 
 
开发: 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-

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