一、doctype的作用
声明一般位于文档的第一行,他的作用只要告诉浏览器以什么样的模式来解析文档。一般指定了之后会以标准模式来进行文档解析,否则就一兼容模式解析。在标准模式下,都是最新标准。兼容模式下都是向后兼容的方式来模拟老式浏览器的行为,以保证一些老的网站的正确访问
二、http和https的区别
多了一层SSL加密。
http是超文本传输协议,是一个网络协议
三、三次握手,四次挥手
四、TCP和UDP
20 8
五、WebSocket
websocket是持久连续中的协议,支持
六、状态码
1 服务器接收到请求,需要请求这继续执行操作
2 服务器接收到信息并成功操作
3 重定向,需要进一步操作
4 客户端出错,请求包含语法错误或无法完成请求
5 服务器端出错
401 请求身份认证
402 保留,将来使用
403 服务器理解了请求,但是拒绝执行请求
七、cookie、sessionStorage、localStorage区别
共同点:都是保存在浏览器端,并且是同源的
属性包括以下
name:cookie的名字
value:cookie的值
domain:表示可以访问的域名
Cookie:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下,存储的大小很小只有4K左右。 (key:可以在浏览器和服务器端来回传递,存储容量小,只有大约4K左右)
sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持,localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。(key:本身就是一个回话过程,关闭浏览器后消失,session为一个回话,当页面不同即使是同一页面打开两次,也被视为同一次回话)
localStorage:localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。(key:同源窗口都会共享,并且不会失效,不管窗口或者浏览器关闭与否都会始终生效)
八、防范XSS和csrf攻击
XSS:跨站脚本攻击
对输入进行过滤
对输出进行编码
对输入和url设置名单
csrf:跨站请求伪造,就是盗用了用户的身份,这个用验证码等验证手段确认用户身份
九、GET和POST的区别
get参数通过url传递,post放在request body中。
get请求在url中传递的参数是有长度限制的,而post没有。
get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。
get请求只能进行url编码,而post支持多种编码方式
get请求会浏览器主动cache,而post支持多种编码方式。
get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。
GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。 GET产生一个TCP数据包;POST产生两个TCP数据包。
十、在地址栏输入一个url,呈现页面的完整过程
1.输入url后,首先需要找到这个url域名的服务器ip,浏览器首先寻找缓存,缓存的查找记录为:浏览器缓存->系统缓存->路由器缓存,如果缓存没找到就查询系统的hosts文件中是否有记录,还是没有就查找DNS服务器。
2.得到服务器的ip地址后,根据ip地址和端口号构建一个http请求构造一个http请求(这个请求会包含这次请求的信息,主要是请求方法,请求说明和请求附带的数据)并将这个请求封装在tcp包中,三次握手,发给服务器后,服务器进行解析做出响应,返回相应的html给浏览器
3.浏览器收到,进行渲染
DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束
十一 、http头部 ***
通用首部:表示一些通用信息,比如date表示报文创建时间
请求首部,就是请求报文中独有的,如cookie等
响应首部,set-cookie等
实体首部 :用来描述实体部分,如allow用来描述可执行的请求方法
十二、缓存机制 ***
强缓存
协商缓存
两个是根据响应的header内容决定的