英语课堂
protocol 协议
HTTP 超文本传输协议 HyperText Transfer Protocol
DNS 域名系统 Domain Name System
IP(internet protocal)
cmde命令 ping+网址 可以得到IP地址
标识主机:更具体地说,标识其网络接口,并且提供主机在网络中的位置。
封装数据报文,以跟其他设备交流。
外网IP
只要路由器连上服务器,那么路由器就会有一个外网IP,只要路由器关机重启 外网IP就会改变。
内网IP
路由器会在家里创建内网,路由会给每个使用内网的设备分配一个不同的内网IP
路由器的功能
- 现在路由器有两个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(统一资源定位服务)
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 —链接
理解流程
url会被curlI具重写,先请求DNS获得IP
先进行TCP连接,TCP连接成功后,开始发送HTTP请求
请求内容看一眼
响应内容看一眼
响应结束后,关闭TCP连接(看不出来)
真正结束