今天面试,面试官问了我一个前端路由与后端路由的问题,我只回答到了一点,面试官叫我再去了解一下
其实我之前在上线自己的博客遇到过下面这些问题
- 为啥我写的Vue应用在开发阶段都没问题,部署到服务端之后访问不了除了
/
的页面呢 - 为啥我写的SPA页面的路由用hash模式都没问题,改成history模式就问题百出呢
- 啥是前端路由啥是后端路由,要怎么配后端才能支持我的前端路由呢
什么是路由
理解Web路由这篇文章讲得特别好了。
在Web开发过程中,经常会遇到『路由』的概念。那么,到底什么是路由?简单来说,路由就是URL到函数的映射。
访问的URL会映射到相应的函数里(这个函数是广义的,可以是前端的函数也可以是后端的函数),然后由相应的函数来决定返回给这个URL什么东西。路由就是在做一个匹配的工作。
从后端路由讲起
在web开发早期的「刀耕火种」年代里,一直是后端路由占据主导地位。不管是php,还是jsp、asp,用户能通过URL访问到的页面,大多是通过后端路由匹配之后再返回给浏览器的。经典面试题,「你从浏览器地址栏里输入www.baidu.com
到你看到网页这个过程中经历了什么」其实讲的也是这个道理。
在web后端,不管是什么语言的后端框架,都会有一个专门开辟出来的路由模块或者路由区域,用来匹配用户给出的URL地址,以及一些表单提交、ajax请求的地址。通常遇到无法匹配的路由,后端将会返回一个404
状态码。这也是我们常说的404 NOT FOUND
的由来。
URL与Methods
如果你关注RESTful API,那么将会很熟悉下面四种发起请求的类型:GET
,POST
,PUT
,DELETE
。
它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。——来自阮一峰《理解RESTful架