协议
网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者”规则“,有了这种”约定“,不同厂商的生产设备,以及不同操作系统组成的计算机之间,就可以实现通信。
http
HTTP是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
ip
IP是internet protocol即互联网协议的缩写。互联网比万维网要更加广泛和底层,ip协议也是特别底层的。两个功能1.如何定位一台设备2.如何封装报文,与其他设备联系。
- IP分为内网和外网,
- 从电信租用宽带
- 猫信号转化为路由器可以理解的信号
- 然后路由器把信号广播这样手机电脑可以连接,只要路由器连接上电信的服务器那么路由器就会有一个外网IP,所有设备会有同一个外网IP
- 如果重启路由器那么外网IP可能重新分配,外网IP是不固定的
- 路由器会创建一个内网,设备会使用内网IP,一般是192.168.xxx.xxx格式,一般路由器会给自己分配一个ip,路由就是网关,网关就是路由
- 路由器会有两个ip,一个外网一个内网,外网内网相当于两个隔绝的网络,必须通过路由器联通
特殊域名
默认的localhost代表了ip地址127.0.0.1,但是这个地址是可以修改的通过hosts修改。
端口
- 一台机器可以提供很多服务,每个服务一个号码,这个号码就叫端口号port。
- 要提供HTTP服务最好使用80端口
要提供HTTPS服务最好使用443端口
要提供FTP服务最好使用21端口
一共有65535个端口(基本够用) - 0到1023号端是留给系统使用的你只有拥有了管理员权限后,才能使用这1024个端口其他端口可以给普通用户使用比如http-server默认使用8080端口一个端口如果被占用,你就只能换一个端口http-server . -c-1 -p 1234在本机的1234端口上起了服务
- 有了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)。
输入网址发生了什么
- 浏览器会向电信/联通提供的DNS服务器询问xiedaimala.com这个域名对应什么IP我们可以nslookup baidu.com 查看百度的IP
- 电信/联通会回答一个IP
- 然后Chrome才会向对应IP的80/443端口发送HTTP服务/HTTPS服务的请求(url会自动变为根目录)
- 写代码啦的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
- curl -v baidu.com 如下图
- curl -s -v -- www.baidu.com 更加复杂
- curl baidu.com 向百度发出https请求


- url会被curl工具重写加入路径,先请求DNS获得IP
- 先进行TCP连接,TCP连接成功后,开始发送HTTP请求
- 请求内容
- 响应内容
- 响应结束后,关闭TCP连接(看不出来)
- 真正结束
http协议就规定了请求内容和响应内容