【星海出品】前后端是如何连通的

web后端和前端是怎么连接的

首先要了解七层模型的基础知识
七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。
在这里插入图片描述

网站数据处理主要分为三层。
第一层,表示层,这部分可以用HTML代码,CSS/Javascript代码来实现等。通过前端代码可以实现网页的布局和设计。这层又可以称为显示层。也就是你用浏览器打开能看到的网页。

第二层,是业务层,这层是负责处理数据的。常用的代码语言有PHP,JSP,Java等。通过这些后台处理语言的算法来处理前台传回的数据。必要的时候进行操作数据库,然后把结果返回给前端网页。

第一层和第二层有的有大的静态文件直接返回客户,则客户点击时不需要返回到数据层,或者物理层。如果有不常用的数据,则需要调用mysql等进行调用。

第三层,是数据层,这个就是数据库,用来存储数据的。通过业务层的操作可以实现增删改数据库的操作。

举个例子就是这样,比方说你在网页上填一个表格然后提交会有以下几种数据传输经过:
①你接触到的是这个网页是属于表示层,这个网页一般由HTML标签结合CSS/JAVASCRIPT来实现的。 这时候你要先填入数据。
②然后你按提交触发后台处理机制,这时候数据会传到后台的代码进行处理。这部分代码根据不同网站可以使PHP,JSP,JAVA等。
代码根据程序员预设的算法将收到的数据进行处理之后会相应的对数据库进行操作,存储数据等。
③成功操作完数据库之后,业务层的代码会再向表示层也就是显示器端传回一个指令通知你表格填写成功

1.浏览器通过互联网HTTP协议访问NGINX
2.静态内容(图片、JS、CSS、文件)都由Nginx负责提供WEB服务
3. Nginx配置代理。可以是Http和Socket通信。可以使用uwsgi协议
4. uWSGI服务程序提供uwsgi协议的支持,将从Nginx发来的请求封装后调用WSGI的Application。这个 Application可能很复杂,有可能是基于Django框架编写。这个程序将获得请求信息。
5.通过Django的路由,将请求交给视图函数(类)处理,可能需要访问数据库的数据,也可能使用了模板。最 终数据返回给浏览器。

如果前端是Rest,这里引用脚手架流程
User -> index.js -> ReactDom.render函数 -> Route -> component export 函数 -> 加载service export函数 -> 调用 component handleSubmit自定义函数 - > service axios -> 生成 request -> Django

如果后台是Django
流程为
User -> web <=> 前端处理模块/函数/算法 -> Django -> urls -> view <=> model/Template <=> Datebase
在这里插入图片描述

增加一个记录,最近有一个面试问了一个问题。所以记录一下。
【2023/11/02】问客户访问 https://www.baidu.com 的数据流是怎么样去流转的。自由发挥。
我把前后端连通说了一下,实际上可以发挥的特别多,这里记录一下。

打开应用,应用层交互。
1.表示层把人的语言翻译成计算机语言并压缩、加密.

与HTTP相比,HTTPS的工作原理类似,主要区别在于服务器和客户端之间发送的数据是加密的。这种加密有助于防止未经授权访问敏感数据。
应用层和传输层中间加入了一层TSL or SSL

2.在浏览器上敲下回车键。会话层会建立双方的联系.

3.传输层将你电脑的端口通过防火墙与百度的端口对接,并将上层数据加上TCP头部打包成数据包传给网络层。

结合 HTTP 和安全套接字层 (SSL) 或传输层安全 (TLS) 协议来加密 Web 服务器和客户端之间传输的数据。HTTPS 加密用于保护敏感数据,例如密码、信用卡号和其他个人信息。
HTTPS 的工作原理与 HTTP 类似,主要区别在于服务器和客户端之间发送的数据是加密的。这种加密有助于防止未经授权访问敏感数据。

4.你的电脑将会通过路由器寻找百度的IP地址(就是网络层的IP寻址),并将上层数据加上IP地址打包成数据段传给数据链路层。

百度的数据库是分布式的,所以在寻找IP的时候可能是就近原则,所以看到的百度的内容可能是不一样的。

5.电脑的通过IP地址寻找百度的Mac地址(就是数据链路层的Mac地址寻址),并将上层数据加上Mac地址打包成数据包传给物理层。
6.则是物理层通过网线将所有数据组成比特流转化成的电信信号进行传输。
首先,百度的数据库是分布式的

回来
第一步、物理层将接收到的从百度传过来的数据分片整合向上传输到物理链路层。
第二步、数据链路层将传上来的数据核对Mac地址,确认是否是百度的Mac地址,若是则继续上传,若不是,则丢弃。
第三步、网络层将传上来的数据核对IP地址,确认是否是百度的IP地址,若是则继续上传,若不是,则丢弃。
第四步、传输层将传上来的数据核对TCP头部,确认TCP头部是否正确,若是则进入防火墙继续上传,若不是,则丢弃。
第五步、会话层会允许百度与自己的计算机建立会话连接。并将收到的数据数据继续上传。
第六步、表示层把会话层传输上来的数据解密、解压,然后向上传输到应用层。
第七步、应用层显示百度的回应讯息,实现人机交互。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值