1.浏览器键入一个网址都经历了哪些过程?

  1. 解析URL得到发送给web的信息,并产生HTTP请求信息
  2. 查询服务器域名对应的IP地址,这个过程涉及到DNS解析
  3. 通过DNS获取到IP后,就可以把HTTP的传输工作交给操作系统中的协议栈
  4. 经历TCP三次握手建立连接进行数据传输;
  5. TCP模块在执行连接、收发、断开等各阶段操作时,都需要委派IP模块将数据封装成网络包发送给通信对象;
  6. 生成了IP头部后,接下来网络包还需要在IP头部的前面加上MAC头部
  7. 后续还会经历网卡、交换机和路由器到对端,然后就是一个反向过程alt

追问:DNS解析过程

  1. 首先会在本地的hosts文件中查找是否有这个网址的映射关系,如果有,则直接调用这个IP的映射进行访问;
  2. 如果没有则会去本地DNS解析缓存查找是否有这个网址的映射关系,如果有则返回;
  3. 如果本地DNS解析缓存中没有映射关系,首先找本地的TCP/IP设置的DNS服务器,这里称之为本地DNS服务器,如果所找的网址在本地DNS资源范围内则返回解析给主机,此解析具有权威性
  4. 如果不在本地DNS的资源范围内,但该服务器已经存储了网址的映射关系,那么调用这个IP的映射关系,完成地址解析,此解析不具有权威性;
  • 上述为递归过程,下面是迭代过程;
  1. 如果本地服务器的解析失败并且缓存中没有对应的映射关系。那么就有两种情况:
  • 本地DNS服务器开启转发模式,则向上一级请求,若上一级也不能解析就找上上一级依次类推,最终把解析返回给本地DNS本地DNS返回给主机
  • 如果本地DNS未采用转发模式。就会去找13组根DNS,根DNS收到后就会去判断这个域名由谁来管理,并将负责此域名的IP返回给本地DNS本地DNS再去找负责的根DNS,如果根DNS不能解析就去找下一级的DNS给本地DNS,然后一直重复这个过程直到找到xx的主机。

2.Cookie的作用是什么?和Session有什么区别?

  • Session服务器端cookie在客户端(浏览器)
  • Session默认储存在服务器的一个文件里(不是内存)
  • Session的运行依赖session id,而session_id是存在cookie中的,也就是说,如果浏览器禁用了cookie,同时session也会失效(但是可以通过其他方式实现,比如在url中传递session_id
  • session可以放在文件、数据库或内存中都可以
  • 用户验证这种场合一般会用Session. alt alt