1.请求流程
- (1) 浏览器获取输入的域名www.baidu.com
- (2) 浏览器向DNS请求解析www.baidu.com的IP地址
- (3) 域名系统DNS解析出百度服务器的IP地址
- (4) 浏览器与该服务器建立TCP连接(默认端口号80)
- (5) 浏览器发出HTTP请求,请求百度首页
- (6) 服务器通过HTTP响应把首页文件发送给浏览器
- (7) TCP连接释放
- (8) 浏览器将首页文件进行解析,并将Web页显示给用户。
2.问题总结
疑问:html文件也是需要请求服务器返回的,为什么前端在开发过程中,并没有请求后端,也能在浏览器中打开页面呢?
理解:前端的html,css, js文件都是需要http请求才能拿到的,也需要建立TCP连接。 前端在开发项目的时候,虽然没有请求后端,但其实是发送了http请求的,因为在前端框架中vite给我们启动了一个开发服务器,所以前端在开发的时候就可以在本地实现浏览器渲染页面整个流程。
打包部署的时候,前端的代码及整个项目就是静态文件,是不用启动这个服务的。通过url中的路径去匹配请求应该去找前端静态文件还是去找server接口数据。(使用nginx代理)
比如:
/homepage 就是请求html页面。
/api就是请求数据接口。
这两个前缀是不能一样的。