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
浏览器访问过程详解图
从另外一个角度谈浏览器的访问过程:
首先要明白数据经历了三层:表示层、业务逻辑层、数据访问层
1.在web浏览器中输入一个网址(此时是用户在表示层的操作),连接到网址所属的服务器
2.业务逻辑层的web服务器加载本地index.php文件,并将其解析
3.脚本文件指向数据访问层的dbms,并执行相应的sql语句
4.数据访问层将sql语句的执行结果返回给业务逻辑层
5.业务逻辑层的web服务器将web页面封装成HTML页面返回给表示层
6.表示层解析此html页面,将其展示给用户
其中SQL注入发生在业务逻辑层