一个完整的请求响应过程
当我们打开浏览器,输入www.baidu.com然后按下回车键,然后百度的页面就完整的展现给我们了。那么从按下回车键到页面展示之间到底发生什么事?下面我给大家简单描述一下。
首先要知道两个问题:
ip是什么?
每台处于互联网的设备都有一个ip地址,而要找到该设备只需要找到ip地址即可
域名是什么?
baidu.com是百度的域名,www.baidu.com就是百度的网站名了。
ip和域名有什么关系呢?
一个ip可对应一个域名
一个ip可对应不同的域名(需要在web server里配置不同的端口给域名)
按下回车键后
(1)浏览器会迅速解析域名并在浏览器DNS缓存中寻找此域名对应的ip地址,如果没有找到(2)会去系统缓存中去寻找也就是从host文件中寻找域名及对应的ip(3)下一个寻找的地方是路由器,路由器也会缓存域名信息(4)运营商DNS服务器(电信、移动等等)
以上四个地方都没有找到那么就会去根域名服务器去查找对应ip,根域名服务器会把请求发到下一级,直到找到为止。
找到ip以后浏览器开始向ip发送请求,web服务器开始接受请求并交给相应的应用去处理。
前端控制器会将请求委托给控制器,控制器从模型获取相应的数据并返回给前端控制器去进行视图渲染,最后响应给浏览器去解析。
为什么要用域名不直接使用ip呢?
ip是一串数字的组合不易记住,而域名言简意赅容易记住。
`