网络和IP
- IP:Internet Protocal。只要在互联网中,至少有一个IP。
- IP的功能
- 如何定位一台设备。
- 如何封装数据报文,以跟其他设备交流。
- 外网IP:只要路由器连上宽带供应商的服务器,路由器就会有一个外网IP,这就是用户在互联网中的地址。
- 内网IP:路由器会给内网中的每一个设备分配一个不同的内网IP,IP格式一般为192.168.xxx.xxx。
- 命令行
ipconfig可以查看自己的网络配置。
路由器的功能
- 路由器有两个IP,一个外网IP一个内网IP。
- 内网中的设备可以相互访问,但是不能直接访问外网。
- 内网设备想要访问外网,就必须经过路由器。
- 外网中的设备可以相互访问,但是无法直接访问内网。
- 外网设备想把内容送到内网,就必须经过路由器。
- 外网和内网就像两个隔绝的空间,唯一的联通点就是路由器。
- 因此,路由器有时也被称作“网关”。
特殊的IP
- 127.0.0.1:表示自己。
- localhost:通过hosts指定为自己。
- 0.0.0.0:不表示任何设备。
端口
- 端口:port。一台服务器可以提供不同的服务,每个服务需要一个端口。
- 要提供HTTP服务最好使用80端口。
- 要提供HTTPS服务最好使用443端口。
- 要提供FTP服务最好使用21端口
- 一共有65535个端口(基本够用)。
- TCP/UDP端口列表 维基百科
- IP和端口缺一不可。
端口规则
- 0~1023号端口是留给系统使用的,拥有管理员权限,才能使用这1024个端口(不推荐)。
- 其他端口可以给普通用户使用。
- http-server默认使用8080端口。
- 一个端口如果被占,只能换一个端口。
域名
- 域名:域名就是对IP的别称,是.com、.net、.org为结尾的字符串。
- 百度的IP是什么?
ping baidu.com
- 注意
- 一个域名可以对应不同的IP。这种机制为负载均衡,方式一台机器的压力过大。
- 一个IP可以对应不同的域名。这种机制为共享主机,为了节省成本。
DNS
- 域名和IP通过DNS来对应起来。
- 访问
xiedaimala.com过程- 浏览器会向宽带供应商提供的DNS服务器询问
xiedaimala.com对应什么IP。 - 供应商会返回一个IP。
- 浏览器会根据对应IP的80/443端口发送请求。
- 请求内容是查看xiedaimala.com的首页。
- 浏览器会向宽带供应商提供的DNS服务器询问
- 为什么是80或443端口?
- 服务器默认用80提供http服务。
- 服务器默认用443提供https服务。
- 可以在开发者工具里看到具体端口。
如何请求不同的页面?
- 通过域名+路径。
https://developer.mozilla.org/zh-CN/docs/Web/HTMLhttps://developer.mozilla.org/zh-CN/docs/Web/CSS
- 注意
- 路径是没有必要有后缀的。
- 使用Chrome开发者工具Network可以查看区别。
如何请求同一个页面的不同内容?
- 通过修改查询参数可以做到
www.baidu.com/s?wd=hiwww.baidu.com/s?wd=hello
如何请求同一个页面、同一个内容的不同位置?
- 通过修改锚点可以做到。
https://developer.mozilla.org/zh-CN/docs/Web/HTML#初学者教程https://developer.mozilla.org/zh-CN/docs/Web/HTML#相关主题
- 注意
- 锚点看起来有中文,实际上不支持中文,但会把中文转换成编码。
- 锚点是无法在Network面板里看到的,因为它不会传给服务器。
URL
- URL:uniform resource locator,统一资源定位服务。
- 格式:协议+域名或IP+端口号+路径+查询字符串+锚点
- HTTPS默认端口443。
curl命令
- curl可以视为一个命令行浏览器,可以浏览网页,下载元素等。
- 用curl命令可以发送HTTP请求。
curl -v http://www.baidu.comcurl -s -v http://www.baidu.com
- 执行命令行
curl -v http://www.baidu.com的过程Rebuilt URL to http://baidu.com/:重写URL,从访问域名变为访问域名下的根目录。Trying 220.181.38.148...:从DNS获得IP地址。TCP_NODELAY set:开始启动TCP连接。Connected to baidu.com (220.181.38.251) port 80 (#0):连接到百度IP的80端口。- 请求内容
GET / HTTP/1.1 Host: www.baidu.com User-Agent: curl/7.79.1 Accept: */* - 响应内容。
- 响应结束后,关闭TCP连接(看不出来)。
- 真正结束。
- HTTP
- Hyper Text Transfer Protocoll,超文本传输协议。
- 规定请求内容的格式是什么,响应内容的格式什么。
拓展
host文件
- host文件在哪?
- 在Windows系统中,hosts位于C:\Windows\System32\drivers\etc\hosts 。
- 在macOS/Linux系统中,hosts位于/etc/hosts。
- hosts文件中以
#开头表示注释。 - hosts中够可以添加一行
127.0.0.1 frank让frank成为127.0.0.1的别称。 - hosts一般需要管理员权限才能编辑。
WWW
www.xiedaima.com和xiedaima.com不是同一个域名。com是顶级域名。xiedaima.com是二级域名。www.xiedaima.com是三级域名。- 三级域名之间为父子关系。
- 有可能二级域名和三级域名不是同一个公司。
利用nslooup
- nslookup:name server lookup。是一个网络管理命令行工具,可以利用nslookup查询域名的IP地址以及IP地址所对应的域名。
ping命令
- 会发送一个回送信号请求给网络主机。一般用来测试网络连通。
- 常用参数
-t:一直ping直到中断。例:ping -t baidu.com-n count:指定回复次数,默认4。例:ping -n 2 baidu.com