1.浏览器输入地址后发生的全过程?
参考连接
1、域名解析:浏览器获得URL地址,向操作系统请求该URL对应的IP地址,操作系统查询DNS(首先查询本地HOST文件,没有则查询网络)获得对应的IP地址
解释:
把URL分割成几个部分:协议、网络地址、资源路径
协议:指从该计算机获取资源的方式,常见的是HTTP、FTP
网络地址:可以是域名或者是IP地址,也可以包括端口号,如果不注明端口号,默认是80端口
如果地址不是一个IP地址,则需要通过DNS(域名系统)将该地址解析成IP地址,IP地址对应着网络上的一台计算机,DNS服务器本身也有IP,你的网络设置包含DNS服务器的IP,例如,www.abc.com不是一个IP,则需要向DNS询问请求www.abc.com对应的IP,获得IP,在这个过程中,你的电脑直接询问DNS服务器可能没有发现www.abc.com对应的IP,就会向它的上级服务器询问,这样依次一层层向上级找,最高可达根节点,直到找到或者全部找不到为止
端口号就相当于银行的窗口,不同的窗口负责不同的服务,如果输入www.abc.com:8080/,则表示不使用默认的80端口,而使用指定的8080端口。
2、确认好了IP和端口号,则可以向该IP地址对应的服务器的该端口号发起TCP连接请求。
3、服务器接收到TCP连接请求后,回复可以连接请求。
4、浏览器收到回传的数据后,还会向服务器发送数据包,表示三次握手结束。
5、三次握手成功后,开始通讯,根据HTTP协议的要求,组织一个请求的数据包,里面包含请求的资源路径、你的身份信息等,例如,www.abc.com/images/1/表示的资源路径是images/1/,发送后,服务器响应请求,将数据返回给浏览器,数据可以是根据HTML协议组织的网页,里面包含页面的布局、文字等等,也可以是图片或者脚本程序等,如果资源路径指定的资源不存在,服务器就会返回404错误,如果返回的是一个页面,则根据页面里的一些外链URL地址,重复上述步骤,再次获取。
6、渲染页面,并开始响应用户的操作。
7、窗口关闭时,浏览器终止与服务器的连接。
2. http与https区别?
1)HTTP和HTTPS的基本概念
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
2)HTTPS和HTTP的区别主要如下:
a)https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
b)http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
c)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
d)http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
在OSI模型中,HTTP工作于应用层,而HTTPS工作于传输层;
3. http状态码
4.post和get的区别 ?
1)后退按钮或刷新,Get无害,post数据会被重新提交;
2)Get所使用的URL可以被设置为书签,而post不可以;
3)Get能够被缓存,而post不可以;
4)Get参数保留在浏览器历史中,而post参数不会保留在浏览器历史中;
5)当发生数据时,get方法向URL添加数据,URL的数据长度是受限的,而post没有数据长度限制;
6)Get只允许ASCII编码,而post没有限制;
7)Get安全性没有post安全性好;
8)Get数据在URL中对所有人是可见的,而在post中数据不会显示在URL中。
9)Get产生一个TCP数据包,post产生两个TCP数据包;对于get方式的请求,浏览器会把header和data一并发送出去;对于post,浏览器先发送header再发送data;
GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同.
5.DNS协议
域名解析总体可分为一下过程:
(1) 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
(2) 如果没有, 就向上级域名服务器进行查找, 依次类推
(3) 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
(4) 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程。
具体可描述如下:
- 主机先向本地域名服务器进行递归查询
- 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
- 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
- 本地域名服务器向顶级域名服务器进行查询
- 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址
- 本地域名服务器向权限服务器进行查询
- 权限服务器告诉本地域名服务器所查询的主机的IP地址
- 本地域名服务器最后把查询结果告诉主机