http相关面试题,拿去吧

发现很多有关http、浏览器相关的面试题,都很零散,所以就抽时间专门整理出了一套,可能不太完整,会慢慢完善

https

https是在http与tcp之间增添了一个加密/身份验证层(SSL)

http与https区别

http是明文传输信息,而https则是具有安全性的SSL加密传输,比http更安全;
http和https连接方式不同,端口也不一样,http是80,https是443;

http无状态协议是什么?怎么解决

无状态协议是对于事务处理没有记忆能力,
使用Cookie来解决无状态

常用的HTTP方法

GET、POST;
PUT: 传输文件;
DELETE:删除文件;
OPTIONS:查询相应URI支持的HTTP方法;

完整HTTP请求所经历的7个步骤

建立TCP连接;
浏览器向服务器发送请求行;
浏览器发送请求头;
服务器应答;
服务器发送应答头;
服务器向浏览器发送数据;
服务器关闭TCP连接;

http的keep-alive

TCP连接在发送后将仍然保持打开状态,浏览器可以继续通过相同的连接发送请求,节省了建立连接所需时间和网络带宽

Ajax请求过程

创建XMLHttpRequest对象;
设置回调函数;
与服务器建立链接,open();
向服务器发送数据,send();
在回调函数中判断响应状态并处理数据;

常见HTTP状态码

200:请求成功;
301:永久性重定向;
302:临时重定向;
403:请求的对应资源禁止被访问;
404:服务器无法找到对应资源;
500:服务器内部错误;
503:服务器正忙;

网页从输入网址到加载完成的过程

浏览器输入url;
域名解析(DNS解析),解析获取相应IP地址;
浏览器向服务器发起并建立tcp连接;
浏览器向服务器发送http请求;
服务器接收请求,将数据发送浏览器;
浏览器获取文件,解析html源码;
生成DOM树,解析css样式,js交互,完成渲染;

浏览器同源策略

同源策略是指"协议+域名+端口"三者相同,
分为两种,DOM 同源策略,XMLHttpRequest 同源策略

跨域方式

通过jsonp跨域;
document.domain + iframe跨域;
location.hash + iframe;
window.name + iframe跨域;
postMessage跨域;
nginx代理跨域;
nodejs中间件代理跨域;
WebSocket协议跨域;

网站性能优化

减少HTTP请求;
利用浏览器缓存;
减少DOM操作;
首屏加载和按需加载;
减少浏览器重排和重绘;
s和css文件合并压缩;
CSS资源放顶部,JS资源放底部;
图片使用png格式;

虚拟DOM

用js实现DOM树,用diff算法对每一层比较,找出最小变更,然后改变实际DOM,达到性能优化的方案

浏览器重排和重绘

重排是DOM元素的几何变化,DOM树结构变化,渲染树需要重新计算。
重绘是当页面中的元素样式的改变并不影响它在文档流中的位置,比如改变背景,颜色,字体等等,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。

常见浏览器内核

IE浏览器:Trident内核;
Chrome浏览器:早期Webkit内核,现为Blink内核;
Firefox浏览器:Gecko内核;
Safari浏览器:Webkit内核;
360浏览器:Trident + Webkit双内核;
QQ浏览器:Trident + Webkit双内核;

常见兼容性问题
不同浏览器的默认margin、padding不同

解决方案:css里增加通配符*{margin:0;padding:0}

事件绑定不同

IE浏览器: dom.attachEvent();
其他浏览器:dom.addEventListener();

Ajax略有不同

IE浏览器:ActiveXObject对象;
其他:XMLHttpReuest对象;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值