- http和https的区别
1.https是具有http➕ssl协议的加密传输和身份认证的安全性传输协议
http是超文本传输协议,无状态连接,信息是明文
2.https需要ca证书,是付费的
3使用的链接方式和端口也不同,https443http80 - Tcp和udp的区别
1.Tcp是面向连接的可靠性传输
udp是无需连接的不可靠的
2.tcp可靠传输不会丢失数据,面向连接可以交付大数据量的交换。而udp不保证
3.tcp首部较大为20字节,udp首部8字节
4.tcp支持一对1,udp支持一对1和1对多
5.tcp面向字节流,udp面向报文,网络出现阻塞不会传输效率降低 - http1和http1.1的区别
1.长连接。keep-alive
2.节约带宽。可以支持只发送头部,之前发送整体
3.host域
4.缓存处理 if-modified-since,expires增加了Entity tag,If-Unmodified-Since, If-Match, If-None-Match
5.错误通知的管理 增加了24个错误状态码 - http1.1和http2的区别
1.多路复用 做到同一个连接并发处理多个请求
2.服务器推送。为了改善延迟,HTTP2.0引入了server push,它允许服务端推送资源给浏览器,在浏览器明确地请求之前,免得客户端再次创建连接发送请求到服务器端获取。这样客户端可以直接从本地加载这些资源,不用再通过网络。
3.头部压缩。
HTTP请求和响应都是由状态行、请求/响应头部、消息主体三部分组成。一般而言,消息主体都会经过gzip压缩,或者本身传输的就是压缩过后的二进制文件,但状态行和头部却没有经过任何压缩,直接以纯文本传输。随着Web功能越来越复杂,每个页面产生的请求数也越来越多,导致消耗在头部的流量越来越多,尤其是每次都要传输UserAgent、Cookie这类不会频繁变动的内容,完全是一种浪费。
4.访问速度快
5.http2内容安全,都是基于https - Fetch发送两次请求原因
第一次发送options进行询问服务器是否支持修改的请求头,如果服务器支持,第二次真正发数据 - sessionStorage 、localStorage 和 cookie 之间的区别
共同点:用于浏览器端存储的缓存数据
不同点:
(1)、存储内容是否发送到服务器端:当设置了Cookie后,数据会发送到服务器端,造成一定的宽带浪费;
web storage,会将数据保存到本地,不会造成宽带浪费;
(2)、数据存储大小不同:Cookie数据不能超过4K,适用于会话标识;web storage数据存储可以达到5M;
(3)、数据存储的有效期限不同:cookie只在设置了Cookid过期时间之前一直有效,即使关闭窗口或者浏览器; sessionStorage,仅在关闭浏览器之前有效;localStorage,数据存储永久有效;
(4)、作用域不同:cookie和localStorage是在同源同窗口中都是共享的;sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面; - Cookie和Session的区别
- Cookie的数据是保存在浏览器端,Session的数据是保存在服务器内存中。
- Cookie的键和值都是字符串类型,而Session的键是字符串,值是Object。
- Cookie不是很安全,别人可以 分析存放在本地的Cookie并进行Cookie欺骗,考虑到安全应当使用Session。
- Session会在一定时间内保存在服务器上默认30分钟。当访问增多,会占用你服务器的性能,考虑到减轻服务器性能方面,应当使用Cookie。
- 单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie
使用建议:
1,将登录信息等重要信息存放在Session中,其它信息如果需要保留,可以放在Cookie中
- Http返回状态码
1xx:消息 2xx:成功 3xx:重定向 4xx:客户端错误
5xx:服务器端错误 200请求成功,一般用于get,post请求
304 not modified
302临时重定向
301永久移动 访问新的url
400因为数据类型和后端不一样,请求无效
401当前请求无需验证
403 forbidden 服务器已经得到请求,但是拒绝执行 - 强缓存和协商缓存
根据相应的header内容来判定
强缓存:状态码200,不发送请求到服务器端,直接从缓存取
协商缓存:状态码304,发送请求到服务器端,通过服务器来告知缓存是否可用
强缓存字段:expires ,cache-control,同时存在的话,后者的优先级高
协商缓存字段:Last-modified,if-modified-since,Etag,if-None-match - 浏览器在请求页面的时候会生成哪两棵树?
1.html节点进行遍历,形成dom树
2.浏览器解析css文件,形成cssom规则树 - http常见头部
通用首部 请求首部 缓存首部 响应首部 实体首部
考:https://blog.csdn.net/CPriLuke/article/details/103449774 - 从输入一个url地址,到显示页面发生了什么出发:
- 1.浏览器向 DNS 服务器请求,把域名解析为ip地址
- 2.建立TCP连接(三次握手);
- 3.浏览器发出读取文件的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
- 4.服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
- 5.浏览器将该 html 文本并显示内容;
- 6.释放 TCP连接(四次挥手);
- html5新增
在web语义化方面新增了header above footer 等标签,新的表单元素,缓存方面增加了webstorage,媒体方面增加了视频音频,地理定位,canvas,svg绘图,拖放,多线程的webworker 和websocket协议 - 请说出三种减低页面加载时间的方法
- 压缩css、js文件* 合并js、css文件,减少http请求
- 外部js、css文件放在最底下* 减少dom操作,尽可能用变量替代不必要的dom操作
- web前端开发,如何提高页面性能优化?
内容方面:
1.减少 HTTP 请求 2.减少 DOM 元素数量3.使得 Ajax 可缓存
针对CSS:
1.把 CSS 放到代码页上端 2.从页面中剥离 JavaScript和css3.精简 JavaScript 与 CSS 4.避免 CSS 表达式
针对JavaScript :
- 脚本放到 HTML 代码页底部 2.移除重复脚本
面向图片(Image):
1.优化图片2 不要在 HTML 中使用缩放图片
3 使用恰当的图片格式4 使用 CSS Sprites 技巧对图片优化
- 你所了解到的Web攻击技术 xss和crsf常考
(1)XSS(Cross-Site Scripting,跨站脚本攻击):利用漏洞提交恶意 JavaScript 代码,比如在input, textarea等所有可能输入文本信息的区域,输入等,提交后信息会存在服务器中,当用户再次打开网站请求到相应的数据,打开页面,恶意脚本就会将用户的 Cookie 信息等数据上传到黑客服务器。
预防策略:
- 将cookie等敏感信息设置为httponly,禁止Javascript通过document.cookie获得
- 对所有的输入做严格的校验尤其是在服务器端,过滤掉任何不合法的输入,比如手机号必须是数字,通常可以采用正则表达式.
- 净化和过滤掉不必要的html标签,比如:, alt,