【转载】前端必须了解的网络协议

| 会话层(session) | | SNMPDNS |

| 传输层(Transport) | 传输层 | TCP、UDP |

| 网络层(Network) | 网络层 | IP、ICMP、ARP、RARP、AKP、UUCP |

| 数据链路层(Data link) | 数据链路层 | FDDI、Ethernet、Arpanet、PDN、SLIP、PPP |

| 物理层(Physical) | | IEEE 802.1A、IEEE 802.2到IEEE 802.11 |

要想深入的了解透四层、七层模型图需要一定的时间,我们前端人员其实只要重点了解一下应用层中的HTTP、FTP,以及传输层当中的TCP和网络层中的ip部分。


http、websocket等协议与tcp、ip协议的关系

在这里插入图片描述

TCP/IP是传输层协议,是互联网相关的各类协议的统称,主要解决数据如何在网络中传输;而HTTP是应用层协议,主要解决如何包装数据。

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

可以把ip层想象成公路,tcp、udp是火车,而http,https等是货物

http连接:http连接就是所谓的短连接,即客户端向服务端发送一次请求,服务器端响应后连接即会断掉;

socket连接:socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起来连接将不会主动断掉;但是由于各种环境因素可能会连接断开。比如:服务器或客户端主机down了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该连接以释放网络资源。所以当一个socket连接中没有数据的传输,那么为了维持连接需要发送心跳消息~~具体消息格式是开发者自己定义的。


http和https的区别
http:是互联网上应用最广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(tcp),用于从www服务器传输超文本到本地浏览器的传输协议,它可以是浏览器更加高效,使网络传输减少。
https:是以安全为目标的http通道,简单讲是http的安全办。即http下加入ssl层,https的安全基础是ssl,因此加密的详细内容就需要ssl。
https的作用主要可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性;
两者的主要区别
  1. https协议需要ca申请证书,一般免费证书较少,因而需要一定费用;

  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;

  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;

  4. http的连接很简单,是无状态的;https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议,比http协议安全。

http的特点
  1. 支持客户、服务器模式(c/s模式)

  2. 简单快速:客户向服务器请求服务时,秩序传送请求方法和路径。请求方法常用的有GET、HEAD、POST。没中方法规定了客户与服务器联系的类型不同。由于http协议简单,是的http服务器的程序规模小,因为通信速度很快。

  3. 灵活:http允许传输任意类型的数据对象。正在传输的类型有content-type加以标记。

  4. 无连接:含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  5. 无状态:无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信心时它的应答就比较快。

http工作流程
  1. 建立tcp/ip连接,客户端与服务器通过socket三次握手进行连接

  2. 客户端向服务端发起HTTP请求(例:POST/login.html http/1.1)

  3. 客户端发送一空白行,表示客户端请求完毕

  4. 服务器做出应答,表示对于客户端请求的应答,例如:HTTP、1.1 200 OK

  5. 服务器向客户端发送应答头信息

  6. 服务器向客户端发送应答头信息后,也会发送一空白行,表示应答头信息发送完毕,接着就以content-type要求的数据格式发送数据给客户端

  7. 服务端关闭tcp连接,如果服务器或者客户端增加connection:keep-alive就表示客户端与服务端继续保存连接,在下次请求时可以继续使用这次的连接

https的特点

优点

  1. 认证用户和服务器,确保数据发送到正确的客户机和服务器;

  2. 安全性 可防止数据在传输过程中不被窃取,改变,确保数据完整性;同事也一定程度上保护了服务端,使用恶意攻击和伪装数据的成本大大提高。

缺点

  1. https握手阶段比较费时,会使页面加载时间延长50%,增加10%-20%的耗电;

  2. 缓存不如http高效,会增加数据开销;

  3. SSL证书需要钱,功能越强大费用越高;

  4. SSL证书需要绑定ip,不能在同一个ip上绑定多个域名,ipv4资源支持不了这种消耗

https的工作流程
  1. 客户使用https的url访问web服务器,要求与web服务器建立SSL连接;

  2. web服务器收到客户端请求后,会将网站的证书信息(证书中包含了公钥)传送一份给客户端;

  3. 客户端的浏览器与web服务器开始协商SSL连接的安全等级,也就是信息加密的等级;

  4. 客户端浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值