前端面试一http/html/浏览器篇

  • 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的区别
  1. Cookie的数据是保存在浏览器端,Session的数据是保存在服务器内存中。
  2. Cookie的键和值都是字符串类型,而Session的键是字符串,值是Object。
  3. Cookie不是很安全,别人可以 分析存放在本地的Cookie并进行Cookie欺骗,考虑到安全应当使用Session。
  4. Session会在一定时间内保存在服务器上默认30分钟。当访问增多,会占用你服务器的性能,考虑到减轻服务器性能方面,应当使用Cookie。
  5. 单个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 :
  1. 脚本放到 HTML 代码页底部 2.移除重复脚本
    面向图片(Image):
    1.优化图片2 不要在 HTML 中使用缩放图片
    3 使用恰当的图片格式4 使用 CSS Sprites 技巧对图片优化
  • 你所了解到的Web攻击技术 xss和crsf常考
    (1)XSS(Cross-Site Scripting,跨站脚本攻击):利用漏洞提交恶意 JavaScript 代码,比如在input, textarea等所有可能输入文本信息的区域,输入等,提交后信息会存在服务器中,当用户再次打开网站请求到相应的数据,打开页面,恶意脚本就会将用户的 Cookie 信息等数据上传到黑客服务器。
    预防策略:
  1. 将cookie等敏感信息设置为httponly,禁止Javascript通过document.cookie获得
  2. 对所有的输入做严格的校验尤其是在服务器端,过滤掉任何不合法的输入,比如手机号必须是数字,通常可以采用正则表达式.
  3. 净化和过滤掉不必要的html标签,比如:, alt,
发布了2 篇原创文章 · 获赞 0 · 访问量 15

猜你喜欢

转载自blog.csdn.net/weixin_40397911/article/details/104416778
今日推荐