URL 统一资源定位符
协议 + 域名或IP + 端口号 + 路径 + 查询字符串 + 锚点;
1 IP
1.1 Internet Portocal
1、如何定位一台设备;
2、如何封装数据报文,以跟其他设备交流;
3、外网IP:IP138.com 或 命令行输入 ipconfig。路由器没有固定的外网IP,重启后可能会改变;
4、内网IP:路由器会在家里创建一个内网IP,内网中的设备被分配一个不同的内网IP,一般来说这个IP的格式都是192.168.xxx.xxx;
5、内网和外网就像两个隔绝的空间,无法互通,唯一的联通点就是路由器,所以路由器有时候也被叫做“网关”;
6、特殊IP:127.0.0.1 表示自己;localhost通过host文件指定一个字符串为自己; 0.0.0.0 不表示任何设备;
C:\Windows\System32\drivers\etc\host 文件,以管理员身份运行一个记事本,将这个文件在记事本中打开,host文件可以让任意的字符串变成对应的ID,如:127.0.0.1 shenjingwa ,保存文件号,在浏览器地址栏输入shenjingwa 与输入127.0.0.1 效果是一样的;
2 端口 port
2.1 一台机器可以提供不同服务
1、要提供HTTP服务最好使用80端口;
2、要提供HTTPS服务最好使用443端口;
3、要提供FTP服务最好使用21端口;
4、一共有65535个端口;
5、查询端口:维基百科 端口
2.2 端口使用规则
http-server -c-1 -p 端口号:就可在该端口号上启动一个服务;IP提供地址,端口提供服务,如百度的设备提供的搜索服务,阿里的设备提供支付服务;IP 和 端口缺一不可;
1、0到1023(2的10次方减一)号端口是留给系统使用的;
2、只有拥有了管理员权限后,才能使用这1024个端口;
3、其它端口留给普通用户使用;
4、比如http-server默认使用8080端口;
5、一个端口如果被占用,你就只能换一个端口;
3 域名
1、域名就是对IP的别称,ping baidu.com ,可以查看域名百度对应的IP; nslookup baidu.com 也可以查对应域名的IP ;
2、一个域名可以对应不同IP,这个叫做均衡负载,防止一台机器扛不住;
3、一个IP可以对应不同的域名,这个叫做共享主机,穷开发者会这么做;
4、域名和IP是通过 DNS 对应起来的;
5、www.xiedaimala.com 和 xiedaimala.com 不是同一个域名, .com 是顶级域名,xiedaimala.com 是二级域名(俗称一级域名), www.xiedaimala.com 是三级域名(俗称二级域名),二级域名和三级域名是父子关系,www.xiedaimala.com 和 xiedaimala.com 可以是同一家公司,也可以不是,www 是多余的;
4 DNS
4.1 作用
DNS(Domain Name System,域名系统):它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
4.2 域名解析
举一个例子,zh.wikipedia.org 作为一个域名就和IP地址198.35.26.96 相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打198.35.26.96 的名字zh.wikipedia.org 来代替电话号码(IP地址)。DNS在我们直接调用网站的名字以后就会将像zh.wikipedia.org 一样便于人类使用的名字转化成像198.35.26.96 一样便于机器识别的IP地址。
DNS查询有两种方式:递归和迭代。DNS客户端设置使用的DNS服务器一般都是递归服务器,它负责全权处理客户端的DNS查询请求,直到返回最终结果。而DNS服务器之间一般采用迭代查询方式。
以查询 zh.wikipedia.org 为例:
客户端发送查询报文"query zh.wikipedia.org"至DNS服务器,DNS服务器首先检查自身缓存,如果存在记录则直接返回结果。 如果记录老化或不存在,则: DNS服务器向根域名服务器发送查询报文"query zh.wikipedia.org",根域名服务器返回顶级域 .org 的顶级域名服务器地址。 DNS服务器向 .org 域的顶级域名服务器发送查询报文"query zh.wikipedia.org",得到二级域 .wikipedia.org 的权威域名服务器地址。 DNS服务器向 .wikipedia.org 域的权威域名服务器发送查询报文"query zh.wikipedia.org",得到主机 zh 的A记录,存入自身缓存并返回给客户端。
4 访问网站的过程
1、输入网址如 baidu.com 后,浏览器会向电信/联通提供的DNS服务器询问该网址对应什么IP;
2、电信/联通会回答一个IP;
3、浏览器向对应IP的 80/443 端口发送请求;
4、请求内容是查看 baidu.com 的首页;
5 页面
1、在同一个服务器上,通过不同的路径可以访问不同的页面;
2、同一个页面,不同的内容,通过 查询参数 实现;
3、同一个内容,不同的位置;锚点可以做到,锚点可以实现文档内部的定位;锚点定位的是页面的某个内容,锚点只跟浏览器有关,没有必要发送给服务器,所以#后面的内容会被浏览器忽略掉,不能发到服务器;
4、锚点看起来有中文,实际不支持中文,会被转变成数字和符号,锚点是无法在network 面板看到的,因为锚点不会传给服务器;
6 crul 命令
1、用 curl 发送HTTP请求:
curl -v http://baidu.com
2、URL 会被 curl 工具重写,先请求DNS获得IP;
3、先进行TCP连接,TCP连接成功后,开始发送HTTP请求;
4、大于号后面的是请求内容;
5、小于号后面的是响应内容;
6、响应结束后,关闭TCP连接;
7、真正结束。