NotionNext
NotionNext
编程爱好者
/互联网从业者
/知识分享博主
认知决定态度,态度决定选择,选择决定人生

URL 是什么

发布于:2021-12-25|最后更新: 2023-8-29|
type
status
date
slug
summary
tags
category
icon
password

HTTP 入门

protocol
协议,礼节,约定

网络和 IP

什么是 IP?

IP 全称 Internet Protocol (网络协议),没有 IP 我们就不能上网。
IP 主要约定了两件事情:
  1. 如何定位一台设备
只要你处在互联网中,你就至少拥有一个独特的 IP。
IP 分为内网和外网:
notion image
  1. 如何封装数据报文,以跟其他设备交流

如何获取外网 IP

  • 从电信租用宽带
  • 买一个路由器,然后用电脑和手机分别连接路由器广播出来的无线 WIFI
  • 只要路由器连上电信的服务器,那么路由器就会有一个[外网 IP] ,比如[14.17.32.211]就是一个外网 IP。这就是你在互联网中的地址
  • 如果你重启路由器,那么你很有可能被重新分配一个[外网 IP],也就是说路由器没有[固定的外网 IP]
  • 但是有个问题,你的路由器的外网 IP 如果是 14.17.32.211, 那么你的手机和电脑 IP 又是什么呢? 答案是[内网 IP]

内网 IP

  • 路由器会在你家里创建一个内网,内网中的设备使用内网 IP,一般来说这个内网 IP 的格式都是 http://192.168.xxx.xxx
  • 一般路由器会给自己分配一个好记的内网 IP,如 192.168.1.1
  • 然后路由器会给每一个内网中的设备分配一个不同的内网 IP,如果电脑是 192.168.1.2,手机是 192.168.1.3,以此类推

路由器的功能

  • 现在路由器有两个 IP, 一个外网 IP 和一个内网 IP
  • 内网中的设备可以互相访问,但是不能直接访问外网
  • 内网设备想要访问外网,就必须经过路由器中转
  • 外网中的设备可以相互访问,但是无法访问你的内网
  • 外网设备想要把内容送到内网,也必须通过路由器
  • 也就是说内网和外网就像两个隔绝的空间,无法互通,唯一的联通点就是路由器
  • 所有路由器有时候也被叫做[网关]

端口

一台机器可以提供很多服务, 每个服务一个号码,这个号码就叫端口号 port

几个特殊的 IP

  • 127.0.0.1 表示自己
  • localhost 通过 hosts 指定自己 ,可以通过 hosts 文件修改命名
  • 0.0.0.0 不表示任何设备

端口 port

一个比喻
  • 麦当劳提供两个窗口,一号快餐,二号咖啡
  • 你去快餐窗口点咖啡会被拒绝,让你去另一个窗口
  • 你去咖啡窗口点快餐结果一样
一台机器可以提供不同服务
  • 要提供 HTTP 服务最好使用 80 端口
  • 要提供 HTTPS 服务最好使用 443 端口
  • 要提供 FTP 服务最好使用 21 端口
  • 一共有 65535 个端口(基本够用)

如何知道应该用什么端口

端口的使用规则

  • 0 到 1023(2 的 10 次方减 1)号端口是留给系统使用的
  • 你只有拥有了管理员权限后,才能使用这 1024 个端口
  • 其他端口可以给普通用户使用
  • 比如 http-sever 默认使用 8080 端口
  • 一个端口如果被占用,你就只能换一个端口
IP 和端口缺一不可

域名

域名实际上就是对 IP 的别称

知识点
  • 一个域名可以对应不同 IP
  • 这个叫做均衡负载,防止一台机器扛不住
  • 一个 IP 可以对应不同域名
  • 这个叫做共享主机,没钱的开发者会这么做
http://baidu.com 对应什么 IP
http://qq.com 对应什么 IP

域名和 IP 是怎么对应起来的

通过 DNS(Domain Name System) ,电信在你免费购买 IP 时会为你免费提供 DNS
当你输入 http://baidu.com
过程:
  • 你的浏览器会向电信/联通提供你的 DNS 服务器询问 http://baidu.com 对应什么 IP
  • 电信/联通会回答一个 IP
  • 然后浏览器才会向对应 IP 的 80/443 端口发送请求
为什么是 80 或 443 端口
  • 服务器默认用 80 提供 http 服务
  • 服务器默认用 443 提供 https 服务
  • 你可以在开发者工具里面看到具体的端口

nslookup 命令

nslookup 命令用于查询 DNS 的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。
  • nslookup –qt=类型 目标域名(注意qt必须小写)

注意

WWW
  • 是同一个域名吗? 不是
他们是什么关系
  • com 是顶级域名
  • 他们是父子关系
  • 所以你应该知道 www.xiedaimala.com 和 xiedaimala.com 可以不是同一家公司,也可以是同一家
  • www 是多余的吗? 是的,非常多余

如何请求不同的页面

  • 路径可以做到 , 使用不同的路径就可以得到不同的页面
  • 工具 , 使用 Chrome 开发者工具 Network 面板看看区别

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

  • 查询参数可以做到

同一个内容, 不同位置

  • 描点可以做到
注意:
  • 锚点看起来有中文, 实际上不支持中文
  • #参考书会变成 %E5%8F%82%E8%80%83%E4%B9%A6
  • 锚点是无法在 Network 面板看到的
  • 因为描点不会传给服务器

URL

Uniform Resource Locator 统一资源定位符
协议 + 域名号 + 端口号 + 路径 + 查询字符串 + 锚点

URL 举例

notion image

HTTP 协议

Hypertext Transfer Protocol
基于 TCP 和 IP 两个协议

curl 命令

用 curl 可以发 HTTP 请求
理解以下概念
  • url 会被 curl 工具重写 , 先请求 DNS 获得 IP
  • 先进行 TCP 连接,TCP 连接成功后, 开始发送 HTTP 请求
  • 请求内容看一眼
  • 响应内容看一眼
  • 响应结束后, 关闭 TCP 连接(看不出来)
  • 真正结束
 
 
CSS 动画HTTP 请求与响应