在浏览器中输入url
用户输入url,例如http://jirengu.com:8080/blog。其中http为协议;jirengu.com为域名(网络地址),及指出需要的资源在那台计算机上;8080为端口号;/blog为请求的文件。一般网络地址可以为域名或IP地址,此处为域名。使用域名是为了方便记忆,但是为了让计算机理解这个地址还需要把它解析为IP地址。
tips:
- http:表示定位的资源在网络上
- file:表示定位的资源在本地
- https:是在http的基础上加密了,及时别人获取到了你请求的数据也无法直接看。
- //表示该url与当前所在页面的协议保持一致。
<p> </p>
DNS解析域名
客户端先检查本地是否有对应的IP地址,若找到则返回响应的IP地址。若没找到则请求上级DNS服务器,直至找到或到根节点
查询的顺序:
- 浏览器缓存:浏览器会缓存dns0记录一段时间
- 系统缓存 :从hosts文件查找是否有改域名和对应ip(通过修改hosts定位本机的作用)
- 路由器缓存
- isp dns 缓存
如果最后无法解析出ip地址,则会出现著名的404错误。
tips:为什么要发明域名?
因为ip地址很难记,而域名比较形象好记(同时要明确的是一个域名可以绑定多个ip,而多个域名也可以解析成同一个ip)
tips:局域网ip不是开放的(可用于手机调试),公网ip所有人偶的可以访问。127.0.0.1代表本机ip
tips:修改本地dns为8.8.8.8或者114.114.114.114,就相当于把自己的电脑搬到了谷歌去了,用的是谷歌的IP地址进行请求,出错的几率很小。
<p> </p>
创建tcp链接
如果地址不包括端口号,根据协议的默认端口号确定一个,http的默认端口为80。端口号就像银行的窗口一样,不同的窗口号办理不同的业务。通过端口组织一个请求的数据包,里面包含请求的资源路径,身份,通过确定的IP和端口号创建TCP连接。
<p> </p>
web serve请求
服务器端的web serve软件在后台进行数据的请求,后台找到数据后把数据以代码的形式打包发给web serve,web serve在把数据给到浏览器。
<p> </p>
浏览器响应
浏览器接受到数据后,对里面的代码进行第二次链接请求,第二次请求发回来的数据,浏览器再根据httml和css来进行内容的排版展现。
tips:web服务器有apche、nginx、iis、lighttpd等。