URL全称:Uniform Resource Locator,统一资源定位器。
协议+域名或IP+端口号+路径+查询参数+锚点
如图:
路径:可以做到请求访问不同页面
查询参数:可以做到同一个页面,显示不同的内容
锚点:可以做到同一个页面,同一个内容,展示在不同位置
IP
IP全称:Internet Protocol,互联网协议
主要约定了两件事:
- 如何定位一台设备
- 如何封装数据报文,以跟其他设备交流
IP分为内网IP和外网IP ,外网内网相互隔绝,通过路由器连接,这使得内网设备想要访问外网就要通过路由器中转,在外网中设备可以相互访问,但是不能访问我们的内网。外网想要把内容传送到内网也必须通过路由器,所以路由器有时候也被称为网关。
几个特殊的IP
- 127.0.0.1 表示自己
- localhost通过hosts指定为自己
- 0.0.0.0不表示任何设备
端口
一台机器可以提供很多服务,每一个服务一个号码,这个号码就叫做端口号port。
- 要提供HTTP服务最好使用80端口
- 要提供HTTPS服务最好提供443端口
- 一共有65535个端口(基本够用)
规则
0到1023(2的10次方减1)号端口十六个系统适用的,只有拥有管理员权限后才能使用这1024个端口。
其他端口可以给普通用户使用,例如 http-server 默认使用8080端口,如果端口被占用,只有换一个端口。
域名
英文名 domain name
域名就是对IP的别称
分类
顶级域名: .com .net .xyz .gov
二级域名: qq.com
三级域名: www.qq.com
ping 命令
例如:
ping qq.com
ping taobao.com
nslookup 命令
例如:
nslookup qq.com
nslookup taobao.com
小知识
一个域名可以对应不同的IP,这叫做均衡负载,防止一台机器扛不住。
一个IP也可以对应不同域名,这叫做共享主机。
DNS
全称:Domain Name System,域名系统服务协议
作用:将域名和IP对应起来。在浏览器地址栏中输入域名按下回车,浏览器会向电信/联通提供的DNS服务器询问该域名对应的IP是什么,电信/联通会回答一个IP,然后浏览器就会向对应IP的80/443端口发送请求,请求内容就是查看域名的首页。
curl 命令
用curl可以发合同HTTP请求
curl -v taobao.com
>里表示发送的内容
<里表示接收的内容
Web通信建立在http/https基础上,而网络是在是TCP/IP协议族的基础上运作的,TCP/IP是互联网相关的各类协议族的总称,HTTP/HTTPS属于它内部的一个子集。
TCP/IP的分层管理
优点:改变设计时不需要整体替换,每个层次内部相对独立,能自由改动
应用层:内预存了各类通用应用服务(FTP,DNS,HTTP/HTTPS)
传输层:提供数据传输(有TCP和UDP)
网络层:处理数据包,规定传输路线(IP)
链路层:处理连接网络的硬件部分
具体过程:
客户端在应用层发出一个HTTP/HTTPS请求(输入的域名会在这一层发给DNS解析,得到IP地址)
传输层(TCP协议)分割HTTP/HTTPS请求报文,并在各个报文上打上标记序号及端口号
网络层(IP协议)增加目的地MAC地址,转发给链路层
每过一层,都会被打上该层所属的首部信息
服务端链路层接收到数据自下而上传递请求数据。每过一层处理消去对应的首部
为确保数据能到达目标,TCP采用三次握手,发送端两次(一次SYN,一次ACK),接收端一次(SYN/ACK)
服务端将数据发送过来的时候同样如此