输入网址后发生了什么
输入url
统一资源定位器uniform resource locator
url
组成
https://www.baidu.com/
协议://域名[:端口]/路径
file:///H:/BaiduNetdiskDownload/
url
作用
定位指定的资源.
url是uri的一个子集, uri是唯一标识符的意思. 身份证可以是uri, 但不是url.
DNS解析
域名系统Domain Name System
, 将域名解析为IP
地址
- 域名解析流程
域名(www.baidu.com) ->
DNS
服务器->返回真实的IP
地址36.152.44.96:443
-> 通过IP
地址访问服务器
客户端与服务器建立连接.
客户端和服务端要互相确认身份, 建立连接通道后再发送数据
客户端正式向服务端发送请求.
服务端处理请求并返回结果
浏览器接收到响应后, 做相应的渲染
TCP/IP五层协议
代码语言:javascript复制https://www.cnblogs.com/xjtu-lyh/p/12416763.html
应用层
为进程(客户端应用)和进程(服务器应用)之间提供服务. 应用层协议定义了应用之间进行数据交互的方式.
代码语言:javascript复制浏览网页
网易云
用python模拟请求
- 应用层协议
- HTTP/HTTPS(超文本传输协议)
- DNS(域名系统)
- FTP(文件传输协议)
- SMTP(邮箱传输协议)
传输层
负责向两个主机应用进程的通信提供服务.
代码语言:javascript复制一个主机可以开启不同的因看应用, 同不同的服务器之间进行通信, 但是都是共用一个传输服务来发送和接受信息
进程 <---> 进程
传输层协议
TCP(传输控制协议)
提供面向连接, (尽可能)可靠的数据传输服务.
代码语言:javascript复制一对一
代码语言:javascript复制面向连接指的就是, 客户端和服务端进行三次交互验证, 也就是TCP三次握手. 建立连接后才可以发送数据.
- 文件传输(FTP)
- 浏览网页(HTTP)
UDP(用户数据协议)
提供无连接的, 不保证数据传输的可靠性
代码语言:javascript复制一对多, 一对一, 多对多...
- 直播
- 实况游戏
网络层
决定了数据的转寄和路径选择, 封装和分组运输层产生的报文段/用户数据段.
代码语言:javascript复制主机 <---> 主机
网络层协议
IP协议
公网IP
也就是指的传统IP地址, 是唯一的.
局域网IP
代码语言:javascript复制ipconfig
数据链路层
负责两台主机之间的数据传输, 向网路层提供数据传输服务
代码语言:javascript复制网卡 <---> 网卡
- 数据链路层的作用
比特流在传输媒介上传输时肯定有误差, 数据链路层的作用就是检错和纠错
- *流量控制
- 差错检测
- 差错控制
物理层
物理层再局部局域网上传送数据帧, 在设备节点传输比特流.
代码语言:javascript复制光纤 <---> 光纤
物理层和数据链路层
代码语言:javascript复制物理层才是真正传输数据的, 数据链路层是用来检查数据完整性的.