URL入门
时间:2023-01-30 11:36:02 | 来源:建站知识
时间:2023-01-30 11:36:02 来源:建站知识
WWW = URL + HTTP + HTML
HTTP: Hyper Text Transfer Protocol 超文本传输协议
HTTP(协议)是基于TCP和IP两个协议
IP协议:Internet Protocal
它主要约定了两件事:1、如何定位一台设备; 2、如何封装数据报文,以跟其他设备交流。
IP分为内网IP和外网IP,以路由器为一个界限。
如何获取外网
IP?
终端输入命令 ipconfig 或登陆 ip138.com 网址
IPV4地址——内网地址(不同设备内网地址也不同)
默认网关——路由器地址(路由器也可称作网关)
几个特殊的
IP:
127.0.0.1 表示自己
localhost 通过 hosts 指定为自己
0.0.0.0 不表示任何设备
关于
hosts文件:
hosts文件以 # 开头的表示注释
hosts中可以添加一行 127.0.0.1 Jung, 让Jung成为127.0.0.1的别称
hosts一般需要管理员权限才能编辑
端口
有了IP,还需要端口。IP用来定位设备,端口用来定位设备的服务。有了IP和端口,就能定位一个设备的服务。IP和端口缺一不可。
一台机器可以提供很多服务,每个服务一个号码,这个号码就叫端口号port(一共有65535个端口)。
要提供HTTP服务最好使用80端口
要提供HTTPS服务最好使用443端口
要提供FTP服务最好使用21端口
端口使用规则:
0到1023 (2的10次方减1) 号端口是留给系统使用的。你只有拥有了管理员权限后,才能使用这1024个端口
其他端口可以给普通用户使用,比如http-server默认使用8080端口
一个端口如果被占用,你就只能换一个端口
域名
域名就是对IP的别称
一个域名可以对应不同IP,这个叫做均衡负载,以防一台机器扛不住
一个IP可以对应不同域名,这个叫做共享主机
域名和
IP是怎么对应起来的?
通过DNS,过程:
你的Chrome浏览器会向电信/联通提供的DNS服务器询问
http://xxx.com对应什么IP
电信/联通会回答一个IP
然后Chrome才会向对应IP的80/443端口发送请求
请求内容是查看
http://xxx.com的首页
拓展:关于
http://www.xxx.com和
http://xxx.com是什么关系?
http://www.xxx.com和
http://xxx.com不是同一个域名
com是顶级域名
http://xxx.com是二级域名(俗称一级域名)
http://www.xxx.com是三级域名(俗称二级域名)
他们之间是父子关系,
http://xxx.com是父。比如
http://github.io就是把子域名
http://xxx.github.io免费给用户使用
http://www.xxx.com和
http://xxx.com 可以是同一家公司的,也可以不是,主要看他是否都购买了这两个域名
www是多余的
在同一服务器上请求不同页面
通过路径可以做到(不能加后缀,比如.com之类的),如:
https://developer.mozilla.org/zh-CN/docs/Web/HTMLhttps://developer.mozilla.org/zh-CN/docs/Web/CSS工具:通过Chrome开发者工具Network面板查看区别
同一个页面,不同内容
通过更改查询参数可以做到,如:
http://www.baidu.com/s?wd=hihttp://www.baidu.com/s?wd=hello同一个内容,不同位置
通过锚点可以做到,如:
https://developer.mozilla.org/zh-CN/docs/Web/CSS#参考书
https://developer.mozilla.org/zh-CN/docs/Web/CSS#教程
注意:锚点看起来有中文,但实际上是不支持中文的。链接中的锚点 #参考书 会变成一长串的字符串。锚点事无法在Network面板看到的,因为锚点不会传给服务器,服务器无法接收。
URL (
Uniform Resource Locator)
URL = 协议 + 域名或IP + 端口号 + 路径 + 查询字符串 + 锚点,举例:
https://www.baidu.com/s?wd=hello&rsv_spt=1#5https:// 表示HTTPS协议,HTTPS默认端口是443 (前端一般只使用两个协议:HTTP和HTTPS)
http://www.baidu.com 是域名
/s 是路径
?wd=hello&rsv_spt=1 是查询参数
#5 是锚点
curl命令
在终端用
curl可以发
HTTP请求:
curl -v
http://baidu.comcurl -s -v --
https://www.baidu.com请求过程
url会被curl工具重写,先请求DNS获得IP
进行TCP链接,TCP链接成功后,开始发送HTTP请求
> 符号跟的是请求内容
< 符号跟的是响应内容
响应结束后,关闭TCP链接(终端里看不出来)
TCP关闭后才是真正的结束
HTTP的作用:规定请求和响应的格式是什么
DNS全称
Domain Name Systerm,DNS保存了一张域名(domain name)和与之相对应的IP地址的表,以解析消息的域名。
资料来源:饥人谷