英语课堂

protocol 协议

HTTP 超文本传输协议 HyperText Transfer Protocol

DNS 域名系统 Domain Name System

IP(internet protocal)

cmde命令 ping+网址 可以得到IP地址

  1. 标识主机:更具体地说,标识其网络接口,并且提供主机在网络中的位置。

  2. 封装数据报文,以跟其他设备交流。

外网IP

只要路由器连上服务器,那么路由器就会有一个外网IP,只要路由器关机重启 外网IP就会改变。

内网IP

路由器会在家里创建内网,路由会给每个使用内网的设备分配一个不同的内网IP

03 浅析 URL - 图1

路由器的功能

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

特殊IP

127.0.0.1 表示自己

localhost 通过 hosts 指定为自己

0.0.0.0 不表示任何设备

端口(port)

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

常用端口:

HTTP为80

HTTPS为443

小贴士

端口和IP缺一不可 ;2者合起来解释为: 一个设备提供的服务。

域名

  • 一个域名可以对应不同IP
  • 这个叫做均衡负载,防止一台机器扛不住
  • 一个IP可以对应不同域名
  • 这个叫做共享主机,穷开发者会这么做

域名和IP对应过程(DNS)

详细解析:点击这里

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

cmde命令 nslookup+网址 直接查询域名情况

  • 你的Chrome浏览器会向电信/联通提供的DNS服务器
  • 问xxx.com对应什么IP
  • 电信/联通会回答一个IP (具体过程很复杂,不研究)
  • 然后Chrome才会想对应IP的80/443端口发送请求
  • 请求内容是查看xxx.com的首页

com是顶级域名

xxx.com 是二级域名

www.xxx.com 是三级域名 和 二级域名 是父子关系。

URL(统一资源定位服务)

03 浅析 URL - 图2

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

以为例:https://www.baidu.com/s?tn=88093251_103_hao_pg&ie=utf-8&wd=12

https 是协议。它表明了浏览器必须使用何种协议。它通常都是HTTP协议或是HTTP协议的安全版,即HTTPS。Web需要它们二者之一,但浏览器也知道如何处理其他协议,比如mailto:(打开邮件客户端)或者 ftp:(处理文件传输),所以当你看到这些协议时,不必惊讶。

www.baidu.com 是域名 它表明正在请求哪个Web服务器。 一个域名可以对应不同IP,一个IP可以对应不同域名域名和IP通过DNS对应起来(通常为域名,有时为IP地址)

.com(用于商业公司);.net(用于网络服务);.org(用于组织协会等);.gov(用于政府部门);.edu(用于教育机构);.mil(用于军事领域);.int(用于国际组织)

端口号:它表示用于访问Web服务器上的资源的技术“门”。如果Web服务器使用HTTP协议的标准端口(HTTP为80,HTTPS为443)来授予其资源的访问权限,则通常会被忽略。 一台机器可以提供很多服务 每个服务一个号码,这个号码就叫端口号port。

/s是路径:请求不同的页面;在Web的早期阶段,像这样的路径表示Web服务器上的物理文件位置。(以“/”字符区别路径中的每一个目录名称)

?tn=88093251_103_hao_pg&ie=utf-8&wd=12 是 查询参数:同一个页面,不同内容;这些参数是用 & 符号分隔的键/值对列表。每个Web服务器都有自己关于参数的规则。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)

锚点:在同一网页的定位位置 #开头

小贴士:
  • 锚点看起来有中文,实际不支持中文
  • 参考书会变成%E5%8F%82%E8%80%83%E4%B9%A6
  • 锚点是无法在Network面板看到的
  • 锚点不会传给服务器 会被浏览器吃掉

curl 命令

用curl可以发HTTP请求

cmde命令 curl -v 链接 显示更多的内容 例如: 端口 域名 IP

cmde命令 curl -s -v —链接

理解流程

  1. url会被curlI具重写,先请求DNS获得IP

  2. 先进行TCP连接,TCP连接成功后,开始发送HTTP请求

  3. 请求内容看一眼

  4. 响应内容看一眼

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

  6. 真正结束