在地址栏输入http://baidu.com,点回车后执行的动作?
DNS(域名解析协议)
2、将主机名baidu.com通过DNS(域名解析协议)解析为IP地址
解析分为两种方式:
1)递归解析
a、客户机向本地主机DNS服务器发送请求
b、本地域名服务器在本地缓存表里查看是否存在请求的主机名和IP地址,如果存在,则将解析结果返回给客户机
c、否则,本地域名服务器向根域名服务器发出域名解析请求,
d、根域名服务器向顶级域名服务器、顶级域名服务器向二级域名服务器发送域名解析、依次查找,直到找到要解析的地址或名字
e、则依次返回查询结果,直到根域名服务器向客户机所在的本地域名服务器返回解析结果
f、本地域名服务器将查询结果返回给客户机,同时将结果保存在本地告诉缓存表中,以备下次使用。
2)反复解析(迭代解析)代理解析
a、客户机向本地主机DNS服务器发送请求
b、本地域名服务器在本地缓存表里查看是否存在请求的主机名和IP地址,如果存在,则将解析结果返回给客户机
c、否则,本地域名服务器向根域名服务器发出域名解析请求,
d、根域名向本地DNS服务器返回结果,告诉它去下一个域名服务器A寻找结果
e、本地服务器向A域名服务器发送解析请求,A域名服务器告诉它去下一个域名服务器B寻找结果
f、依次查找,直到找到要解析的地址或名字,则本地服务器将解析结果返回给客户机,同时保存在客户机中的告诉缓存表里
APR(地址解析协议)
3、将解析后的IP地址通过APR(地址解析协议)解析为MAC地址
ARP是数据链路层用于局域网的协议。基本功能是:通过目标设备的IP地址,查询设备的MAC地址,保证通信顺利完成。
工作原理:A向B发送数据 ARP缓存表是IP地址和MAC地址一一对应的。
1、A首先会在自己的ARP缓存表中查找是否有目标IP地址,如果存在,直接将其对应的MAC地址返回,
2、如果不存在,主机A就向本地网络发送一个(FF.FF.FF.FF)的广播幀,相当于询问本网络中的所有主机,主机B的MAC地址是多少?
只有B主机收到该帧后,才会应答A,告知自己的MAC地址,其余的主机接收到询问帧,并不应答。
3、A收到了B的应答后,就知道了B的MAC地址,就可以开始通信了,同时,将B的IP地址和MAC地址作为键值对存入到本地ARP缓存表中,以备下次使用。
ARP缓存表采用老化机制,在一段时间后,会删除某行不使用的记录,这样大大减少了ARP缓存表的长度,提交了查询速度。
HTTP(超文本传输协议):应用层协议,允许将html(超文本标记语言)从Web服务器端传送到客户端浏览器
1、客户端向服务器发送http请求
http的特点:
1、支持客户端服务器模式
2、简单快速
3、灵活
4、无状态 (HTTP协议是无状态的和Connection: keep-alive的区别)Hyper Type Transfer Prototype
HTTP协议是无状态的,同一个客户端的这一次请求和上一次请求是没有联系的,对于服务器来说,并不知道这两次请求来自同一个客户端
无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。也就是,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。
HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。
从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。
Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。
默认请求方式:GET host(主机名):[80(端口号)] URI
请求方式:GET、POST、HEAD
Get和POST方法的区别?
1、get的方法对于传输的数据大小有限制
2、GET提交数据时,使用?分割URL和传输数据,参数之间使用&相连,post是把提交的数据封装在body中
3、get方法会有安全问题,在登录请求时,会将用户名和密码都显示在地址栏.,如果页面可以存在缓存或被机器可以被其他人访问,则会引起安全问题。