浅析URL

125 阅读4分钟

HTTP入门部分-URL(统一资源定位服务)

介绍

protocol

  • 协议、礼节、约定

李爵士发明的三个东西

  • WWW = URL+HTTP+HTML

IP

IP是什么

  • 约定如何定位一台设备

  • 约定如何封装数据报文(这个先不管)

外网IP

  • 路由器连接到运营商的服务器,路由器就有一个外网IP

  • 路由器的IP不是固定的,每次重启有可能就会变

  • 可以通过查询外网ip网站查询自己的外网IP

内网IP

  • 路由器会创建一个内网

  • 路由器会给自己分配一个好记的内网IP(如192.168.1.1)

  • 然后会给每个内网设备分配不同的内网IP

  • 内网设备使用分配到的内网IP(如192.168.xxx.xxx)

路由器功能

  • 路由器有两个IP,一个内网IP,一个外网IP

  • 内网设备可以相互访问,但不能直接访问外网

  • 内网设备要访问外网,必须有路由器做中转才行

  • 外网可以直接访问外网,但不能访问内网,也需要路由器做中转才行

  • 所以路由器有时候也被叫做网关

特殊的IP(需要记住)

  1. 127.0.0.1 表示自己

  2. localhost 通过hosts文件配置 指定为自己,这个文件在C/windows/system32/drivers内,可以自己修改

  3. 0.0.0.0 不表示任何设备(暂时还没有学到这里)

端口

端口 port

  • 一台机器可以提供不同服务
  1. 要提供HTTP服务,通常是80端口

  2. 要提供HTTPS服务,通常是443端口

  3. 要提供FTP服务,通常是21端口

  4. 一共有65535个端口,基本是够用的

  • 如果忘记了什么端口是什么服务可以搜TCP端口,维基百科说得很清楚

端口使用规则

  1. 0~1023(2的10次方减一)号端口是留给系统使用的

  2. 要拥有了管理员权限后,才能使用这上面的端口(但不推荐这么做)

  3. 其他端口可以给普通用户使用

  4. 例如:http-server 默认使用8080端口

  5. 一个端口被占用就只能换一个使用

  • 可以更改端口
  1. http-server -p 端口号

http-server修改端口.png

  • 总结

IP和端口缺一不可

域名

域名是什么

  • 对IP的别称

可以在控制台ping一个网站得到IP

ping得到ip.png

知识点

  1. 一个域名可以绑定多个IP,服务器均衡

  2. 一个IP也可以绑定多个域名,这叫共享主机,一般穷的开发者会这么做(比如我)

  3. 域名和IP是通过DNS查询到的

输入网页后的过程

  1. 浏览器会向运营商提供的DNS 询问其对应的IP

  2. 运营商回答一个IP,然后浏览器向对应IP的 80/443 端口发送请求

  3. 为什么是80和443端口,因为80对应的是http,443对应的https

  4. 开发者工具的网络那一栏可以看到具体的端口

  • nslookup命令+域名可以查询到域名对应的多个IP

nslookup查询ip.png

查阅参数和锚点

如何请求同一个网站的不同页面

  • 路径

在域名上写不同路径就能访问同一网站的不同页面

MDN-CSS

同一个网站不同路径CSS.png

MDN-HTML

同一个网站不同路径HTML.png

  • 工具

开发者工具可以查看请求是哪个路径

如何请求同一个页面的不同内容

  • 查阅参数

例如:

  1. baidu.com/s?wd=hi

  2. baidu.com/s?wd=hello

就能分别查看到hi的搜索内容和hello的搜索内容

如何请求同一个内容的不同位置

  1. 锚点可以做到这个操作

  2. 在域名的最后加上#和锚点名称

  • 注意
  1. 锚点看起来是有中文的,实际上是不支持中文的

  2. #后面如果是中文最后会变成一串字符串

  3. 锚点无法在开发者工具中网络面板看到

  4. 因为锚点不会传给服务器,就是#后面的内容(包括#)最终不会传给服务器

URL举例

域名解释.png

就算没有写出来也要在心里知道HTTPS的端口是443

curl命令

介绍

  1. 用curl命令可以发HTTP请求

  2. 例如curl -v baidu.com

  3. 或者curl -s -v baidu.com

概念

  1. URL会被CURL工具重写,先请求DNS获得IP

  2. 先进性TCP链接,TCP连接后,开始发送HTTP请求

  3. 请求的内容需要看一下

  4. 响应的内容也需要看一下

  5. 响应结束后,关闭TCP连接(在控制台看不出来)

  6. 真正结束

  • 补充图片方便知道是啥意思

curl命令.png