| |
|
开发:
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是一种超文本传输协议,是一个在计算机世界里专门在两点间传输文字,图片,音视频等超文本数据的约定和规范 超文本指的是网络传输的内容不仅限于简单的文本,还包括图片,音视频,超链接的跳转等等。 传输是指我们的超文本数据被解析成二进制数据包后由传输载体(电缆,光缆等)由一个计算机终端传输到另一个计算机终端的过程 协议是指网络中进行数据传输的规范 OSI七层模型: 自上而下分别是: 应用层:包含了各种应用程序协议,如HTTP,FTP,SMTP等。他是唯一面向用户的,直接向用户提供服务,是计算机用户以及各种应用程序和网络之间的接口 表示层:处理信息的语法语义,进行加密解密,压缩解压缩等,把数据按照一定的格式传输给会话层 会话层:不同计算机上的用户间建立和管理会话 传输层:提供建立,维护和拆除传输连接的功能,起到承上启下的作用,保证报文的正确传输 网络层:进一步管理网络中的数据通信,控制数据链路层与传输层之间的信息转发,建立,维持和终止网络的连接,将数据点对点从源端经过若干中间节点传送到目的端,从而向传输层提供最基本的数据传输服务 数据链路层:负责建立和管理节点间的链路。由于在网络中存在各种干扰,所以光靠物理链路是不可靠的。所以数据链路层在物理层提供的比特流的基础上,通过差错控制,流量控制方法,使得有差错的物理线路变为无差错的数据链路 物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输 一个形象的举例:来自博主Java小白白又白 TCP/IP模型和OSI模型的对比 CDN:Content Delivery NetWork,即内容分发网络,它应用了http协议里的缓存和代理技术,代替源站响应客户端的请求。CDN依靠部署在各地的边缘服务器,通过负载均衡,内容分发调度等功能,使用户就近获取所需内容,减少了网络阻塞,提高用户体验。 TCP/IP:协议簇,顾名思义,TCP/IP协议簇中不仅有TCP和IP协议,它是一系列的网络通信协议的总称。而其中最核心的协议就是TCP/IP,他们和其他的例如UDP,ICMP等共同构成了一个协议栈 HTTPS:因为HTTP是明文传输,所以很容易被攻击,所以处于安全考虑,HTTPS出面解决了这个问题。他在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS在HTTP的基础上增加了SSL加密协议层。 TCP和UDP的区别? TCP和UDP都是传输层的协议,他们在数据传输特点上有很大区别。 TCP:数据的传输需要经过三次握手四次挥手的过程,从而保证数据一定传输到位。TCP协议是一种面向连接的,可靠的,基于字节流的传输层通讯协议。他只能进行点对点的数据传输,不支持广播传输。他还能提供拥塞控制,当网络拥塞时,TCP能够减小向网络注入数据的速率和数量,缓解拥塞。使用于要求可靠传输的场景 UDP:无连接,并且是不可靠传输,不使用流量控制和拥塞控制,支持一对一,一对多,多对多的交互通信,面向报文,适用于实时应用的场景。他的效率要高于TCP TCP的三次握手和四次挥手的过程 三次握手:TCP需要经过客户端和服务端的三次确认才可以互相建立连接 第一次握手:客户端A向服务端B发出连接请求报文段 第二次握手:服务端B接收到请求,因为TCP是全双工协议,因此服务端也可能会向客户端发送数据,所以服务端B也会向客户端A发送连接请求报文段 第三次握手:客户端A接收到服务端B的连接请求,但是要跟服务端说一下自己收到了,此时才真正达到了互连的目的 四次挥手:发生在TCP断开连接的时候 第一次挥手:客户端A向服务端B发送一个FIN,表示自己这边已经完事了,要关闭客户端到服务端的数据传输。 第二次挥手:服务端B收到A的关闭请求,此时向A发送一个ACK表示确认。若此时服务端还有数据则继续传输 第三次挥手:服务端B向A发出FIN,表示要关闭服务端到客户端的数据传输 第四次挥手:客户端接收到服务端发来的FIN请求,并向服务端发送一个ACK表示确认,完成四次挥手 HTTP的请求响应过程 拿一个网址举例 当我们输入网址点击回车后
HTTP1.0和HTTP1.1的主要区别? 1.1中默认使用长连接,在http1.0中,默认使用短连接,也就是每次请求都要重新建立一次连接,而建立连接和断开连接需要经过三次挥手四次握手的过程,所以会有比较大的开销。在1.1时,默认使用长连接,默认开启Connection:keep-alive。 Cookie和Session Cookie:是网站为了辨别用户身份进行Session跟踪而存储在用户本地的数据,通常保存在客户端内存中或本地磁盘。Cookie解决了HTTP协议无状态的问题,由于http对于事务处理没有记忆能力,所以当后续请求需要前面的信息时,就必须重新发起请求获得之前的信息,比较麻烦。而拥有cookie之后,某用户第一次请求服务器时,服务器会返回给浏览器一些数据(cookie),浏览器把cookie保存在本地,当用户第二次发起请求时,会把存储的cookie数据也一并带到服务器,服务器会通过这个cookie判断当前用户是哪个 ? Cookie的生命周期:Cookie在生成时会被指定一个expire值,在这个周期内cookie有效,超过后cookie就会被清除。 Cookie的缺点:
Session:会话控制。一个会话是指用户打开浏览器,进行请求访问,关闭浏览器的整个过程。Session对象中存储了特定用户一次会话所需的属性及配置信息 Session的工作过程:当用户第一次请求服务器时,此时用户还没有自己的会话,所以Web服务器会自动创建一个Session对象,里面包含了这个用户特定的SessionID,并把这个ID发送给客户端,存在cookie里,同时服务器也会把ID和对应的用户信息和操作记录在session中。当客户端再次访问服务器时,因为会把cookie带上,所以也就把SessionID也带上了,服务器通过这个SessionID找到对应的用户的信息 Session生命周期:一般是半小时。比如某个用户第一次登陆了服务器,服务器给他一个SessionID,在半小时内用户没有再次发起过请求,那这个Session就会被清除,用户此时在请求就需要重新登录 Session和Cookie的不同
如果Cookie被浏览器禁用了,那Session还能用吗? 能。我们知道虽然Cookie中保存了SessionID,但就算不用Cookie,我们也可以通过在URL上加SessionID的方式保证Session的正常使用 |
|
网络协议 最新文章 |
使用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 22:36:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |