应用层
规定应用程序的数据格式
协议: FTP、DNS、SMTP、HTTP、WWW
get和post的区别:
- get的数据在URL里面对所有人可见,post的数据不会直接显示在URL中。
- get对数据长度有限制,当发送数据时get方法向url里面添加数据,URL的最大长度为2048个字节,post无限制。
- get请求可以收藏为书签,post的请求不可以收藏为书签。
- get在浏览器中退后/刷新无影响,post会被重新提交。
- 编码类型不同。
- get历史参数会保留在浏览器历史中,post的参数不会保存在浏览器历史中。
- get只允许ASCII字符,post没有限制,也允许二进制。
- 综合上述post比get安全。
补充:
get请求只会有一次TCP连接,post请求会有两次TCP连接。
get:把header和data一并发送,服务器响应成功200(返回数据)。
post:浏览器先发送header,服务器响应100,浏览器再发送data,服务器响应成功返回200(返回数据)。
Firefox:一次。
运输层
建立端口到端口的通信
协议: TCP、UDP
TCP: 有点事保证数据的正确性和顺序性。缺点是复杂,实现困难,消耗资源多
三次握手:
四次挥手:
UDP: 优点是简单,易实现。缺点是可靠性差,数据可能会丢失
补充: socket(H5新增)在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作封装成几个简单的接口应用层调用,从而实现进程在网络中的通信
网路层
建立主机到主机的通信
协议: IP
数据链路层
确定了0/1电信号的组合方式
协议: MAC、VLAN
物理层
通过物理手段将设备连接在一起