本节概数
主要涉及以下几点:
- potocol的含义
- 什么是URL?(www=url+http+html)
- 什么是IP?用于定位一台设备
- 路由器的功能?内网和外网之间的桥梁
- 什么是端口?
- 什么是域名?IP的别称
- 域名和IP怎么对应起来?
1.http的含义是?
hyper text transfer protocol,超文本传输协议。 李爵士发明的三样东西之一,万维网WWW=URL+HTTP+HTML
2.什么是IP?
Internet Protocal,互联网协议。主要约定两件东西:
- 如何定位一台设备(电脑、手机、路由器等)
- 如何封装数据报文,以跟其他设备交流。
只要你在上网,便至少拥有一个独立的IP
3.如何获取外网IP和内网IP?
- 办一个宽带
- 装一个路由器
- 路由器获得一个外网IP,即你在互联网的地址,连上路由的手机也是这个外网IP
- 重启路由器,外网IP可能会改变,外网IP不是固定不变的(每个月花费5000元左右,可以得到一个固定的外网IP)
- 路由器会在你的家中创建一个内网,内网中的设备使用内网IP,一般来说这个内网IP的格式是192.168.xxx.xxx
- 路由器会给自己分配一个内网IP,一般为192.168.1.1,连接在路由器上的所有设备都有一个独特的内网IP,如192.168.1.2
4.路由器的功能
把内网的请求路由到外部,把外网的信息路由内部。
- 路由器有2个IP,一个外网IP(网络运营商给的),一个内网IP(自己分配给自己的)
- 内网和外网中的设备无法直接互相访问
- 内网中的设备可以互相访问,外网亦是如此
- 路由器是连接内、外网的唯一的通道,也被叫作网关
5.几个特殊的IP
- 127.0.0.1 表示自己
- localhost通过hosts指定为自己
如果桌面有一个index.html网页,则以下两个地址都可以访问这个网页
127.0.0.1:8080/index.html
localhost:8080/index.html
3.0.0.0.0不表示任何设备,前端一般用不到
6.除了IP,还需要端口port(IP和端口缺一不可)
IP用来定位一台设备,端口用来定位一台设备的服务,有了IP和端口,就可以定位一台设备提供的服务,比如百度的服务器提供的中文搜索服务
一台机器要想提供不同的服务,就需要使用不同的端口号(类比餐厅里的饮品窗口和菜品窗口):
- HTTP服务:80端口
- HTTPS服务:443端口
- FTP服务:21端口
- 一共有65535个端口
怎么知道用什么端口号?wiki百科查询端口号的作用: - 0-1023的端口系统使用,不推荐个人使用
- 个人使用1024-63335,比如http-server使用8080端口
7.域名
域名是对IP的别称,方便记忆
命令行ping baidu.com,可以得到百度的IP
- 一个域名可以对应不同的IP:负载均衡,防止同一个IP的访问量太大
- 一个IP可以对应不通的域名:多家公司共用一台服务器,节约成本
8.DNS:建立域名和IP的对应查询关系
域名和IP是怎么对应起来的?
DNS:Domain(域) Name System 域名系统/域名服务
当你办理宽带时,电信/联通会免费给你提供一个DNS服务器
- 输入一个域名,比如“taobao.com”
- 浏览器向电信/联通提供的DNS服务器询问,“taobao.com”对应的IP是什么
- 电信/联通返回一个IP,浏览器获取它
- 浏览器向这个IP的80/443端口发送请求
- 请求的目的是查看“taobao.com”的首页
9.域名的级
www前缀一般不为程序员使用
- com是顶级域名
- baidu.com是二级域名(俗称一级域名)
- www.baidu.com是三级域名(俗称二级域名)
- unizhoulu.github.io是github.io的子域名,它们是不同的两个域名
- github.io将子域名userid.github.io免费提供给用户使用
- www.xxx.com和xxx.com有可能是不同的网站
- www是多余的
10.URL(统一资源定位符)
URL:Uniform Resource Locator
举例:www.baidu.com/s?wd=hello&…
- https 协议
- www.baidu.com 域名
- /s 路径
- wd=hello&rsv_spt=1 查询参数
- #5 锚点
- https默认端口 443
如何在同一台服务器上请求到不同的页面?
请求不同的路径
https://juejin.cn/pins
https://juejin.cn/topics
如何在同一个页面请求到不同的内容?
使用查询参数
https://baidu.com/?wd=chinese
https://baidu.com/?wd=japan
同一个页面,同一个查询参数,如何查看不同的内容?
使用锚点
- 锚点不支持中文
- 锚点无法在network面板看到
- 锚点不会传给服务器
11.curl命令
curl命令可以发http请求
curl -v http://baidu.com
1.url会被curl工具重写,先请求DNS获得IP
2.先进行TCP连接,连接成功后,开始发送HTTP请求
12.请求与响应模型
1.可以把服务器理解为一台没有显示器的电脑,即主机。
2.服务器可以开多个端口,且有IP。
3.前端工程师的代码一般运行在客户端(多为浏览器),后端工程师的代码一般运行在服务端。
客户端如何发送请求?
方法一:chrome地址栏输入网址
方法二:curl -v https://www.baidu.com
一些概念
1.用户代理(User Agent):帮用户发送请求的工具,比如chrome、curl等