一想到今天到了22号,心里还是挺急的。
还是说一下今天面试遇到的问题吧。今天面试中遇到的第一个印象比较深的问题是react router v4中browserRouter和hashRouter有什么区别?
browserRouter依赖于HTML5 history API来实现的路由机制,以实现无刷新的路由切换。好处就是不想hashRouter那样在url上会有/##,缺点是不支持HTML5 history API的浏览器会很尴尬。
hashRouter借助url上的哈希值来进行路由跳转。
在项目中有遇到如果是本地起一个服务器的情况下,hashRouter可以进行路由的跳转,而browserRouter则页面不会进行跳转。解决的办法还有待查找资料。
关于http中请求方式:
GET:GET请求会显示请求的资源,一般用于数据的读取。但是get请求是不安全的,一般会被网络蜘蛛任意访问。
POST:POST请求会向资源提交数据,请求资源进行处理。
PUT:PUT方法会向指定资源服务器上传其最新内容。通过该方法客户端将指定资源的最新内容上传到服务器取代指定资源的内容。
DELETE:DELETE方法用于请求服务器删除当前url所指定的资源。DELETE方法所请求的资源会被删除。
HEAD:HEAD请求和GET请求一样,都是向服务端发起请求,但是与GET请求不同的是,返回的信息不包括响应主体。通常利用HEAD在不全部传输内容的情况下获取响应的头信息。HEAD方法常用于客户端查看服务端的性能。
OPTIONS: OPTIONS请求和HEAD请求类似,一般也是通过客户端查看服务器端的性能。这个方法会请求服务器端返回该资源所有的http请求,该方法一般是通过‘*’来代替资源名称,向服务器端发起OPTIONS请求,来判断服务器端是否请求成功。javascript的XMLHttpRequest就是通过OPTIONS对服务器端进行嗅探请求,来判断是否对服务器端有访问权限。
http的状态码:
1: 信息,服务器接收到请求,需要请求者进一步执行操作;
2: 成功,操作被成功接收并处理;
3: 重定向,需要进一步操作已完成请求;
4: 客户端错误,请求包含语法错误或无法完成请求;
5**: 服务器错误,服务器在请求处理的过程中发生错误。
200: 请求成功,一般用于get或post请求;
201:以创建,成功请求并创建了新的资源;
204:无内容,服务器成功创建,但为返回成功内容。在未更新网页的情况下,可确保浏览器继续显示当前文档。在上一个项目中,前端发起请求经过ngix时,ngix会通过options方法向服务器端进行请求,如果请求成功,则ngix则会给客户端发送一个204的状态码说明对服务器端的访问权限是允许的;
301: 永久移动,请求的资源会被永久的移动到新的uri,返回的信息会包括uri,浏览器会直接定向到新的uri;
400: 客户端的请求有误,服务器端无法解析;
404: 服务器无法根据客户端的请求找到资源;
500: 服务器内部错误,无法找到资源。