HTTP全解笔记(一)URL是什么
时间:2023-01-31 14:56:01 | 来源:建站知识
时间:2023-01-31 14:56:01 来源:建站知识
李爵士发明的三样东西
WWW( World Wide Web ) = URL( Uniform Resource Locator) + HTTP( Hyper Text Transfer Protocol ) + HTML
URL( Uniform Resource Locator)的意思是统一资源定位系统,那么一个URL的完整是什么
URL = 协议 + 域名或IP + 路径 + 查询字符串 + 锚点 + 端口号 , 如
https://www.baidu.com/s?wd=URL&rsv_spt=2#2是由以下组成
https:// 协议
http://www.baidu.com 域名 /s 路径 ?wd=URL&rsv_spt=2 查询参数 #5 锚点
一、网络和IP
IP(Intelnet Protocal)就是网络之间互连的协议。
1.主要做两件事:
(1)如何定位一台设备
(2)如何封装数据报文,以跟其他设备交流
2.IP分为内网和外网
3.如何获取外网IP
如: 点击获取
4.查看内网IP
cmder 输入 ipconfig 查看内网IP 和 路由器IP
5.几个特殊的IP(表示本地)
可以直接通过特殊IP访问自己电脑上的文件
(1)127.0.0.1 表示自己
(2)localhost 通过 hosts 指定为自己
hosts 地址:C:/Windows/System32/drivers/etc
(3)0.0.0.0 不表示任何设备
二、端口 port
用来定位一个设备的服务1.一台机器可以提供不同服务
(1)要提供 HTTP 服务最好使用 80 端口
(2)要提供 HTTPS(S=安全) 服务最好使用 443 端口
(3)要提供 FTP 服务最好使用 21 端口
(4)一共有 65535 个端口
2.规则
(1) 0~1023 (2的10次方减1)号端口是留给系统使用的
(2)管理员权限才能使用这1024个端口
(3)其他端口可以给普通用户使用
(4)比如 http-server 默认使用8080端口
(5)一个端口如果被占用,就只能换一个端口
☆☆☆IP与端口缺一不可☆☆☆三、域名、路径、查询参数、锚点
1.域名
(1)域名就是对 IP 的别称
http://qq.com 对应的
ping
http://qq.com(2)知识点
① 一个域名可以对应不同 IP ,这个叫做均衡负载,防止一台机器扛不住
② 一个 IP 可以对应不同域名,这个叫做共享主机
(3)域名和IP通过DNS (Domain Name Server,域名服务器)对应
① 过程
1> 当输入一个网址,你的浏览器会向电信/联通提供的 DNS 服务器询问网址对应的是什么 IP
2> 然后收到一个回复IP,此时浏览器才会向对应 IP 的 80/443 端口发送请求
3> 请求内容是查看网址
② 为什么是 80 或 443 端口
1> 服务器默认用 80 提供 http 服务
2> 服务器默认用 443 提供 https 服务
3> 可以在开发者工具里看到具体的端口
(3) 如何查询域名对应的IP地址
nslookup
http://qq.com(4)www和没有www的关系
① www
http://www.baidu.com 和
http://baidu.com 不是同一个域名
② 他们的关系
1> com 是顶级域名
2>
http://baidu.com 是二级域名 (俗称一级域名)
3>
http://www.baidu.com 是三级域名(俗称二级域名)
4> 他们是父子关系
5> 所以
http://www.baidu.com 和
http://baidu.com 可以是同一家公司,也可以不是
2.路径
如何请求不同的页面
① 通过路径做到,如
https://developer.mozilla.org/zh-CN/docs/Web/HTMLhttps://developer.mozilla.org/zh-CN/docs/Web/CSS② 工具
使用浏览器开发者工具 Network 面板看看区别
3.查询参数
同一个页面,不同内容,查询参数可以做到,如:
www.baidu.com/s?wd=hi
www.baidu.com/s?wd=hello
4.锚点
(1)同一个内容,不同位置,通过锚点可以做到,如:
https://developer.mozilla.org/zh-CN/docs/Web/CSS#教程
实际为
https://developer.mozilla.org/zh-CN/docs/Web/CSS#%E6%95%99%E7%A8%8Bhttps://developer.mozilla.org/zh-CN/docs/Web/CSS#参考书
实际为
https://developer.mozilla.org/zh-CN/docs/Web/CSS#%E5%8F%82%E8%80%83%E4%B9%A6(2)注意事项
① 锚点看起来可以有中文,实际不支持中文
② 所以即使 #教程 或者 #参考书 依旧会跳转,但是实际显示的却是 #%E6%95%99%E7%A8%8B
③ 锚点是无法在 Network 面板看到的,浏览器会吃掉 # 后面的内容
④ 因为锚点不会传给服务器
四、curl 命令
1.用 curl 可以发 HTTP 请求
(1)curl -v
http://qq.comRebuilt URL to:
http://qq.com/ 区别为加了个 / ,默认访问根目录
Trying 183.3.226.35... 查询到IP 尝试访问IP
TCP_NODELAY set 开始启动TCP
Connected to
http://qq.com (183.3.226.35) port 80 (#0) 开始连接 80 端口
后面以 > 开头是我发送了什么,以 < 是 IP 响应了什么
(2)curl -s -v --
https://www.baidu.com2.理解以下概念
(1)url 会被 curl 工具重写,先请求 DNS 获得 IP
(2)先进行 TCP 连接,TCP 连接成功后,开始发送 HTTP 请求
(3)请求内容
(4)相应内容
(5)相应结束后,关闭 TCP 连接(看不出来)
(6)真正结束