从OSI七层看浏览器访问过程&七层各自都有哪些协议

OSI 七层

1.应用层   浏览器输入一个域名,首先在这一层进行 DNS 解析,将域名解析为 IP   这一层有的协议有:HTTP,SNMP,FTP,DNS,Gateway,tftp,telnet,smtp 等等在 TCP 基础上搭建的通信协议 2.表示层 协议和应用:ebcdic,ascii,jpeg,tiff,midi,mpeg 3.会话层 管理浏览器多个会话,防止不同会话产生混乱 协议和应用:nfs,sql,rpc,x-windows,netbios SESSION 认证发生在这一层 4.传输层(Transport)   传输建立的 TCP 三次握手和传输断开的四次挥手发生在这一层   协议和应用:tcp,udp,spx   值得一提的是,此层的 TCP 和 UDP 协议都有相互对应的应用层协议 UDP 对应的应用层协议: DNS(域名解析:53) SNMP(简单网络管理协议:161 端口接收信息,162 端口 Trap 采集信息) TFTP(简单文件传输协议:69) NTP(网络时间协议:123) 此层数据单位:段 segment   TCP 的叫做 Segment(数据段);   UDP 的叫做 Datagram。(数据报) TCP 三次握手及四次挥手在这一层发生 三次握手 第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SEND 状态,等待服务器 确认; 第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态; 第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三次握手。 四次挥手 由于 TCP 连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个 FIN 来终止这个方向的连接。收到一个 FIN 只意味着这一方向上没有数据流动,一个 TCP 连接在收到一个 FIN 后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。 (1)客户端 A 发送一个 FIN,用来关闭客户 A 到服务器 B 的数据传送(报文段 4)。 (2)服务器 B 收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加 1(报文段 5)。和 SYN 一样,一个 FIN 将占用一个序号。 (3)服务器 B 关闭与客户端 A 的连接,发送一个 FIN 给客户端 A(报文段 6)。 (4)客户端 A 发回 ACK 报文确认,并将确认序号设置为收到序号加 1(报文段 7)。 5.网络层(Network)  负责浏览器访问过程中的 IP 寻址,以及 arp 解析   此层数据单位:包 packet   协议和应用:ip,ipx,appletalk,icmp 6.数据链路层(Data Link)   在这一层用解析的 MAC 寻址   此层数据单位:帧 Frame   协议和应用:802.3、802.2、3ATM、HDLC、FRAME RELAY 7.物理层(Physical)   此层数据单位【比特流 Bit】   协议和应用:v.35,eia/tia 323

浏览器访问过程详解图

从 OSI 七层模型看浏览器访问过程 从另外一个角度谈浏览器的访问过程: 首先要明白数据经历了三层:表示层、业务逻辑层、数据访问层

  1. 在 web 浏览器中输入一个网址(此时是用户在表示层的操作),连接到网址所属的服务器
  2. 业务逻辑层的 web 服务器加载本地 index.php 文件,并将其解析
  3. 脚本文件指向数据访问层的 dbms,并执行相应的 sql 语句
  4. 数据访问层将 sql 语句的执行结果返回给业务逻辑层
  5. 业务逻辑层的 web 服务器将 web 页面封装成 HTML 页面返回给表示层
  6. 表示层解析此 html 页面,将其展示给用户

其中 SQL 注入发生在业务逻辑层