一、说一下http和https的区别。
http是超文本传输协议,是应用层的协议,她是不可靠的传输协议,协议端口为80;
https是通过SSL协议在传输层加密过的http。他保证了数据传输的安全性,协议端口为8443。他的缺点是因为证书要钱,费用高,握手阶段也比较费时,会使页面加载时间延长。
二、TCP三次握手
客户端和服务器端都要直到各自可分发,客户端首先要发一个SYN包给服务端,服务端收到后返回SYN包和ACK包给客户端,客户端再把ACK返回给服务器端,这就是三次握手。
三、TCP和UDP的区别
1.TCP是面向连接的,UDP是无连接的即发送数据前不需要建立链接。
2.tcp是因为三次握手是可靠的,udp是不可靠的。
3.TCP是面向字节流的,支持一对一的,UDP是面向报文的,支持一对多的。
四、cookie、sessionStorage和localStorage的区别
共同点:都是保存在浏览器端,并且是同源的
cookie在浏览器和服务器间来回传递,cookie只属于某个路径下,大小只有4k左右,在cookie设置时间内都有效,和关闭窗口无关。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地浏览器保存。
sessionStorage:仅在当前浏览器关闭前有效。可以保存5M的信息
localStorage:始终有效,浏览器关闭也一直保存,因为用作持久化数据。可以保存5M的信息。
cookie经常用来保存用户登录状态,以免重复登录。或者跟踪用户行为,比如天气预报,显示当地天气情况。
五、cookie如何防范XSS攻击?
XSS跨站脚本攻击是指攻击者在返回的HTML中嵌入js脚本。
需要在http头部配上,set-cookie.上设置两个属性,httponly,secure
httponly可以禁止js脚本来访问cookie,secure是仅在请求为https的时候发送cookie。
六、cookie和session的区别
cookie的数据是存在客户端,session是存在服务器端。
cookie不是很安全,别人可以分析存在本地的cookie,而session较安全。
session会在一定时间内保存到服务器上。当访问增多,会比较占用服务器的性能。
cookie的最大作用就是存储sessionId用来唯一标识用户。
但个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie。
七、get和post的区别
get参数通过url传递,post放在request body中。
get参数会保留在浏览器历史记录中,post中的参数不会被保留。
八、在地址栏中输入一个URL,到这个页面呈现出来,会发生什么?
首先URL是统一资源定位符,他经常是域名,域名会通过DNS服务器将域名转换成IP,然后通过TCP/IP去服务器上请求资源,服务器接受到请求,然后将响应结果返回给浏览器,浏览器拿到响应结果进行渲染dom。
九、浏览器在生成页面的时候,会生成那两棵树?
构造两棵树,DOM树和CSSOM规则树
当浏览器接收到服务器相应来的HTML文档后,会遍历文档节点,生成DOM树,CSSOM规则树由浏览器解析CSS文件生成。
十、cookie有哪些字段可以设置
name,value,domain,path,超时时间expires,size,
http,secure