五层网络模型

2023/04/15 文章推荐 共 1372 字,约 4 分钟

在互联网的世界中,我们的消息是如何准确的到达目的地的呢?消息不被修改,没有丢失。要解答这个问题,我们可以了解一下网络模型,常说的五层网络模型(应用层,传输层,网络层,数据链路层,物理层

为什么要分五层呢?

最早是四层(TCP/IP),中间有过7层(OSI),现在比较普遍的是说五层(TCP/IP)。这个就是实践下来最优的一种方式吧,就好比我们说的三次握手一样。

当遇到一个比较复杂的问题的时候,可以使用分层的思想把问题简单化,这就是分层的意义所在

每一层相对独立,只需要解决自己的问题 每一层无需考虑上一层做了什么,怎么做的,只需要把自己的结果交给下一层 每一层有多种方案可供选择,选择不同的方案不会对上下层造成影响 每一层都会在上一层的基础上增加一些额外的信息

五层网络模型

发送方在传输的过程中是从上往下,层层封装(加一个头,首部),层层传递;接收方与之相反

应用层:用什么消息消息格式进行数据传输,比如说HTTP FTP DNS SMTP POP3等等协议,作为前端用的最多的就是HTTP请求了,如果写过后端的话可能就会用过TARS协议进行通信

传输层:如何保证消息的可靠传输,一般用TCP协议,在直播或者某些场景对消息的要求没那么高的时候使用UDP

网络层: 如何在互联网中找到对方,通过IP和路由器

数据链路层:如何在一个子网中找到对方, MAC 交换机

物理层:上面给我的东西(二进制数据,我用什么信息表示,光纤,双绞线,同轴电缆…

我们所知道和熟悉的应用层

对前端来说,就是发送一个http请求嘛,不同的场景使用不同的方式发送请求

GET:表示向服务器获取资源。业务数撼在请求行中,无须请求体,数据量比较小,参数暴露

POST,表示向服务器提交信息,通常用于产生新的数据,比如创建,业务数据在请求体中

PUT,表示希望修改服务器的数据,通常用于修改。业务数据在请求体中

DELETE,表示希望删除服务器的数据。业务数据在请求行中,无须请求体

OPTIONS,发生在跨域的预检请求中,表示客户端向服务器申请跨域提交

TRACE,回显服务器收到的请求,主要用于测试和诊断

CONNECT,用于建立连接管道,通常在代理场景中使用,网页中很少用到

在我们的日常开发中前面两种用的最多,OPTIONS请求只要在跨域的时候用,CORS机制要求跨域请求必须在实际请求之前发送一个OPTIONS请求来获取服务器对此跨域请求的支持情况。

扩展

客户端可以通过发送OPTIONS请求来检查服务器是否支持特定的HTTP方法和请求头。可以避免一些潜在的安全问题,例如跨站请求伪造(CSRF)等攻击。

在服务器端能够记录请求信息,分析应用的安全性,例如应用防火墙等技术。需要注意的是,OPTIONS请求可能会对服务器造成额外的负担,因此需要合理设置CORS策略,并对服务器进行优化和保护。

Web应用需要在HTTP头部里使用“Origin”字段来表示当前请求来自哪个源,指定需要跨域访问的资源,然后由Web服务器根据这些信息来判断是否允许进行跨域请求。如果服务器允许跨域访问,则在HTTP响应头中返回“Access-Control-Allow-*”开头的字段,告诉浏览器允许访问特定的资源。

需要注意的是,CORS不是解决跨域问题的唯一方法,如果需要进行更加复杂的跨域访问,也可以使用代理、JSONP、Websocket等技术。


在技术的历史长河中,虽然我们素未谋面,却已相识已久,很微妙也很知足。互联网让世界变得更小,你我之间更近。

在逝去的青葱岁月中,虽然我们未曾相遇,却共同经历着一样的情愫。谁的青春不曾迷茫或焦虑亦是无奈,谁不曾年少过

在未来的日子里,让我们共享好的文章,共同学习进步。有不错的文章记得分享给我,我不会写好的文章,所以我只能做一个搬运工

我叫 sunseekers(张敏) ,千千万万个张敏与你同在,18年电子商务专业毕业,毕业后在前端搬砖

如果喜欢我的话,恰巧我也喜欢你的话,让我们手拉手,肩并肩共同前行,相互学习,互相鼓励

文档信息

Search

    Table of Contents