url相关知识

194 阅读5分钟

协议

网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者”规则“,有了这种”约定“,不同厂商的生产设备,以及不同操作系统组成的计算机之间,就可以实现通信。

http

HTTP是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

ip

IP是internet protocol即互联网协议的缩写。互联网比万维网要更加广泛和底层,ip协议也是特别底层的。两个功能1.如何定位一台设备2.如何封装报文,与其他设备联系。

  1. IP分为内网和外网,
  2. 从电信租用宽带
  3. 猫信号转化为路由器可以理解的信号
  4. 然后路由器把信号广播这样手机电脑可以连接,只要路由器连接上电信的服务器那么路由器就会有一个外网IP,所有设备会有同一个外网IP
  5. 如果重启路由器那么外网IP可能重新分配,外网IP是不固定的
  6. 路由器会创建一个内网,设备会使用内网IP,一般是192.168.xxx.xxx格式,一般路由器会给自己分配一个ip,路由就是网关,网关就是路由
  7. 路由器会有两个ip,一个外网一个内网,外网内网相当于两个隔绝的网络,必须通过路由器联通

特殊域名

默认的localhost代表了ip地址127.0.0.1,但是这个地址是可以修改的通过hosts修改。

端口

  1. 一台机器可以提供很多服务,每个服务一个号码,这个号码就叫端口号port。
  2. 要提供HTTP服务最好使用80端口
    要提供HTTPS服务最好使用443端口
    要提供FTP服务最好使用21端口
    一共有65535个端口(基本够用)
  3. 0到1023号端是留给系统使用的你只有拥有了管理员权限后,才能使用这1024个端口其他端口可以给普通用户使用比如http-server默认使用8080端口一个端口如果被占用,你就只能换一个端口http-server . -c-1 -p 1234在本机的1234端口上起了服务
  4. 有了IP和端口,我们可以定位一个设备的服务。比如百度设备的HTTP服务,淘宝设备的支付服务,百度设备的搜索服务,腾讯设备的聊天服务。

域名

电脑通过一个叫dns服务器的东西,把域名转化成ip地址,电脑再通过ip地址进行通讯,把"网站"呈现给用户。ip地址和域名的关系从来都不是一一对应的关系,一个ip地址可以有很多个域名,叫共享主机,一个域名对应许多ip叫均衡负载。

  • com、org是顶级域名(company,organization)
  • xiedaimala.com是二级域名(俗称一级域名)
  • www.xiedaimala.com是三级域名(俗称二级)
  • www.xiedaimala.com和xiedaimala.com不是同一个域名,可以分属不同的公司。他们是儿子和父亲的关系。只是www.xiedaimala.com的父域名是xiedaimala.com而已。
  • 二级域名和三级域名相对独立的
  • github.io把子域名xxx.github.io免费给你使用

DNS

域名系统 (DNS) 将人类可读的域名(例如,www.amazon.com)转换为机器可读的IP地址(例如,192.0.2.44)。

输入网址发生了什么

  1. 浏览器会向电信/联通提供的DNS服务器询问xiedaimala.com这个域名对应什么IP我们可以nslookup baidu.com 查看百度的IP
  2. 电信/联通会回答一个IP
  3. 然后Chrome才会向对应IP的80/443端口发送HTTP服务/HTTPS服务的请求(url会自动变为根目录)
  4. 写代码啦的IP(服务器)收到请求,把HTML代码给我,之后请求CSS、JS。
  • 为什么是80或443端口服务器默认用80提供http服务;服务器默认用443提供https服务;你可以在开发者工具里看到具体的端口
  • 114.114.114.114是电信默认的dns服务器

如何请求不同的页面

之前输入域名我们请求的是域名的根目录,现在想要访问这个域名(服务器)下不同的页面,路径可以做到。

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

查询参数可以做到,例如访问微博同一个域名路径却访问不同内容

同一个内容,不同位置

锚点可以做到,在域名后面加#锚点,锚点看起来有中文,实际不支持中文。比如 #参考书 会变成 #%E5%8F%82%E8%80%83%E4%B9%A6,锚点是无法在Network面板看到的,因为锚点只是本地的内容而已,不会传给服务器

url统一资源定位符

协议+域名或IP+端口号+路径+查询字符串+锚点

服务器+机器上路径+页面上内容+内容哪一块

curl

  1. curl -v baidu.com 如下图
  2. curl -s -v -- www.baidu.com 更加复杂
  3. curl baidu.com 向百度发出https请求

输入curl之后发生了什么

  1. url会被curl工具重写加入路径,先请求DNS获得IP
  2. 先进行TCP连接,TCP连接成功后,开始发送HTTP请求
  3. 请求内容
  4. 响应内容
  5. 响应结束后,关闭TCP连接(看不出来)
  6. 真正结束

http协议就规定了请求内容和响应内容