✅浏览器输入www.taobao.com回车之后发生了什么
典型回答
- URL解析,对URL自动编码,然后检查长度,之后根据url查看浏览器是否缓存了该页面
- DNS查询,依次通过浏览器缓存,OS hosts缓存,路由器缓存,ISP缓存和根域名服务器去查询对应的ip
- 浏览器将请求封装为HTTP报文,在client和server建立连接之前,会进行TCP三次握手
- 之后将报文从外到里封装为 以太网首部+ip首部+tcp首部+http首部经过网关和路由器发送给server
- 对于淘宝来说,请求会先到nginx服务器上,然后nginx采用默认的轮询算法进行负载均衡,携带原来browser的ip把报文发送给Servlet容器
- Servlet容器接收到请求之后会解析请求行,请求体,请求头,然后交给MVC处理
- DispatcherServlet接收到请求后,通过请求路径返回相应的拦截器和Controller;
- 在Controller中会进行业务逻辑的执行,可能会调用下层的Service以及持久层进行数据的CRUD。
- 对Controller进行处理并返回ModelAndView;然后在通过ViewResolve对ModelAndView进行处理,返回View视图;最后一步是进行渲染View,产生response
- 浏览器接收response,HTTP响应报文的头部包含了状态码(Status-Code),并进行缓存和解码
- 浏览器渲染页面
原文: https://www.yuque.com/hollis666/xkm7k3/ggwmdo