前端面试之JavaScript部分(一)
2018-03-19 20:55
274 查看
一、浏览器发送Cookie服务器接收不到的原因
1、第一种可能是出现了跨域问题,请求并没有真正传递到服务器。2、客户端没有实验http协议,比如使用socket时得客户端socket构造HTTP GET头部,GET头部的数据域有个字段表明是与cookie相关的。 cookie是用于访问服务器时在浏览器保存一些信息的,socket中没有cookie和web服务器交换数据,需要把数据封装成HTTP数据包发送给服务器。
二、Http状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。下面是常见的HTTP状态码:
100-请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101-请求者已要求服务器切换协议,服务器已确认并准备切换。
200 - 请求成功
203 - 服务器已成功处理了请求,但返回的信息可能来自另一来源。
301 - 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 - 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
304-未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
503-服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
当这些缓存有效的时候,通过 HttpWatch 查看一个请求会得到这样的结果:
第一次访问 200
鼠标点击二次访问 (Cache)
按F5刷新 304
按Ctrl+F5强制刷新 200
状态码301与302:对于浏览网页的普通用户来说没有什么区别,看到的效果都只是一个跳转,浏览器中旧的URL变成了新的URL,页面跳转至新URL指向的地方。但对于搜索引擎来说,302可能会存在URL规范化及网址劫持的问题。从网址A做一个302重定向到网址B时,主机服务器的隐含意思是网址A随时有可能改主意,重新显示本身的内容或转向其他的地方。大部分的搜索引擎在大部分情况下,当收到302重定向时,一般只要去抓取目标网址就可以了,也就是说网址B。实际上如果搜索引擎在遇到302转向时,百分之百的都抓取目标网址B的话,就不用担心网址URL劫持了。问题就在于,有的时候搜索引擎,尤其是Google,并不能总是抓取目标网址。为什么呢?比如说,有的时候A网址很短,但是它做了一个302重定向到B网址,而B网址是一个很长的乱七八糟的URL网址,甚至还有可能包含一些问号之类的参数。很自然的,A网址更加用户友好,而B网址既难看,又不用户友好。这时Google很有可能会仍然显示网址A。由于搜索引擎排名算法只是程序而不是人,在遇到302重定向的时候,并不能像人一样的去准确判定哪一个网址更适当,这就造成了网址URL劫持的可能性。也就是说,一个不道德的人在他自己的网址A做一个302重定向到你的网址B,出于某种原因, Google搜索结果所显示的仍然是网址A,但是所用的网页内容却是你的网址B上的内容,这种情况就叫做网址URL劫持。你辛辛苦苦所写的内容就这样被别人偷走了
相关文章推荐
- 前端开发面试总结JavaScript部分
- 前端面试系列之---javascript基础和数据类型
- 前端面试知识点锦集 JavaScript
- 收集Web前端 面试题 Javascript部分
- 前端js面试技巧(1)——js基础部分
- 前端JavaScript面试视频课程 完完全全揭秘一线互联网企业JS高级面试
- web前端面试-------javaScript基础知识点之数据类型
- 前端面试之---javascript原型
- Front End Developer Questions 前端开发人员问题(三)JavaScript部分
- 前端面试(css进阶部分)
- 问得最多的十个JavaScript前端面试问题
- 前端面试-----JavaScript题
- 【前端积累】JavascriptUtil 字符串部分
- 前端面试库_JS部分_02
- 前端面试必问的问题:java 与javascript的区别
- 前端js面试技巧(2)——JS-WEB-API部分
- 前端面试-----JavaScript内置函数
- 前端面试准备2----Javascript中的Undefined和null小结
- 前端面试JavaScript编程
- 面试某公司前端关于javascript中this的总结