2024年最新http面试题(1),面试哪些

最后

今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!

可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

2、GET和POST的区别:

2、GET和POST的区别:

#这个问题。我相信只要你说你做过接口测试,基本上都被问到过。

简单来说:GET产生一个TCP数据包,POST产生两个TCP数据包

严格的说:对于GET方式的请求,游览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST请求。游览器先发送header,服务器响应100 continue,游览器再发送data,服务器响应200 ok(返回数据)

  • GET请求的参数是放在请求的URL中,而POST方法是放在请求体中

  • GET请求在URL中传递参数时会有长度限制,而POST无限制(不是绝对的,只是相对来说)

  • GET请求会被浏览器主动缓存,而POST不会

  • GET请求的参数会保存在浏览器中,而POST的参数不会保存在浏览器中

 3、cookies机制和session机制的区别:

1、cookies数据保存在客户端。session数据保存在服务端

2、cookies可以减轻服务器压力,但是不安全,容易进行cookies欺骗

3、session安全一点,但是占用服务器资源。

4、http和https的区别:

#与问题2一样,这个只要你说你接触过接口,基本上就会问的。

HTTPS = HTTP + SSL

1、https有ca证书,http一般没有

2、http是超文本传输协议,信息是明文传输。https则是具有安全性的ssl加密传输协议

3、http默认80端口,https默认443端口。

5、说说网络分层里七层模型是哪七层

应用层:允许访问OSI环境的手段

表示层:对数据进行翻译、加密和压缩

会话层:建立、管理和终止会话

传输层:提供端到端的可靠报文传递和错误恢复

网络层:负责数据包从源到宿的传递和网际互连

物理层:通过媒介传输比特,确定机械及电气规范

6**、TCP和UDP的区别**

  • TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来

  • UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境

 7、关于Http 2.0 你知道多少

  • HTTP/2引入了“服务端推(server push)”的概念,它允许服务端在客户端需要数据之前就主动地将数据发送到客户端缓存中,从而提高性能。

  • HTTP/2提供更多的加密支持

  • HTTP/2使用多路技术,允许多个消息在一个连接上同时交差。

  • 它增加了头压缩(header compression),因此即使非常小的请求,其请求和响应的header都只会占用很小比例的带宽

8.用什么解析成IP?

(1)浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。

(2).如果用户浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。

(3)如果没有找到,在本地域名服务器(最近的一台DNS服务器)中查询IP地址

(4)如果没有找到,本地域名服务器会向根域名服务器发送一个请求

(5)如果根域名服务器中也不存在该域名,但判定这个域名属于“com”域,则本地域名服务器会向com顶级域名服务器发送一个请求

(6)如果com顶级域名服务器没有找到该域名,但判定这个域名属于“google.com”域,则本地域名服务器会向google.com域名服务器发送一个请求,以此类推

(7)直到本地域名服务器得到域名对应的IP地址,并将其缓存到本地,供下次查询使用

9、什么是HTTP持久化和管线化?

  • HTTP持久化是针对HTTP无连接的特点进行改进的,使用的是keep-live首部字段保持长连接

  • HTTP管线化是针对HTTP每次只能是请求一次回答一次的模式进行改进,使得可以连续发送多次请求。

10、SSL有几次握手?具体过程是怎样的?

这个问题和HTTPS的实现原理可以看做是一样的,但是比较有针对性,以下是回答:

SSL有4次握手,握手过程为:

  1. 客户端请求SSL连接

  2. 服务端发送包含公钥的证书

  3. 客户端使用公钥加密对称秘钥并发送给服务端

  4. 服务端使用私钥解密对称秘钥

11.断点续传的原理


Range:用于客户端到服务端的请求,可以通过改字段指定下载文件的某一段大小及其单位,字节偏移从0开始。典型格式:

Ranges: (unit=first byte pos)-[last byte pos]

Ranges: bytes=4000- 下载从第4000字节开始到文件结束部分

Ranges: bytes=0~N 下载第0-N字节范围的内容

Ranges: bytes=M-N 下载第M-N字节范围的内容

Ranges: bytes=-N 下载最后N字节内容

If-Range:用于客户端到服务端的请求,用于判断实体是否发生改变,必须与Range配合使用。若实体未被修改,则响应所缺少的那部分;否则,响应整个新的实体。

Accept-Ranges:用于server到client的应答,client通过该自段判断server是否支持断点续传。

Accept-Ranges:bytes 表示支持以bytes为单位进行传输。

Accept-Ranges:none 表示不支持断点续传

Content-Ranges:用于sever到client的应答,与Accept-Ranges在同一个报文内,通过该字段指定了返回的文件资源的字节范围。格式如下:

Content-Ranges:bytes M-N/size 大小为size的文件的第M-N字节范围的内容

12、强缓存和协商缓存的命中和管理

  1. 1)浏览器在加载资源时,先根据这个资源的一些http header判断它是否命中强缓存,强缓存如果命中,浏览器直接从自己的缓存中读取资源,不会发请求到服务器。比如某个css文件,如果浏览器在加载它所在的网页时,这个css文件的缓存配置命中了强缓存,浏览器就直接从缓存中加载这个css,连请求都不会发送到网页所在服务器;

  2. 2)当强缓存没有命中的时候,浏览器一定会发送一个请求到服务器,通过服务器端依据资源的另外一些http header验证这个资源是否命中协商缓存,如果协商缓存命中,服务器会将这个请求返回,但是不会返回这个资源的数据,而是告诉客户端可以直接从缓存中加载这个资源,于是浏览器就又会从自己的缓存中去加载这个资源;

  3. 3)强缓存与协商缓存的共同点是:如果命中,都是从客户端缓存中加载资源,而不是从服务器加载资源数据;区别是:强缓存不发请求到服务器,协商缓存会发请求到服务器。

  4. 4)当协商缓存也没有命中的时候,浏览器直接从服务器加载资源数据。

  5. 关于强缓存:
    1. 浏览器第一次跟服务器请求一个资源,服务器在返回这个资源的同时,在respone的header加上Cache-Control的header
  6. 浏览器在接收到这个资源后,会把这个资源连同所有response header一起缓存下来;

  7. 浏览器再请求这个资源时,先从缓存中寻找,找到这个资源后,根据它第一次的请求时间和Cache-Control设定的有效期,计算出一个资源过期时间,再拿这个过期时间跟当前的请求时间比较,如果请求时间在过期时间之前,就能命中缓存,否则就不行。

  8. 如果缓存没有命中,浏览器直接从服务器加载资源时,Cache-Control Header在重新加载的时候会被更新。

  9. 浏览器第一次跟服务器请求一个资源,服务器在返回这个资源的同时,在respone的header加上Expires的header

这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道

HTML

  • HTML5有哪些新特性?

  • Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?

  • 如何实现浏览器内多个标签页之间的通信?

  • ⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?

  • 简述⼀下src与href的区别?

  • cookies,sessionStorage,localStorage 的区别?

  • HTML5 的离线储存的使用和原理?

  • 怎样处理 移动端 1px 被 渲染成 2px 问题?

  • iframe 的优缺点?

  • Canvas 和 SVG 图形的区别是什么?

JavaScript

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 问:0.1 + 0.2 === 0.3 嘛?为什么?

  • JS 数据类型

  • 写代码:实现函数能够深度克隆基本类型

  • 事件流

  • 事件是如何实现的?

  • new 一个函数发生了什么

  • 什么是作用域?

  • JS 隐式转换,显示转换

  • 了解 this 嘛,bind,call,apply 具体指什么

  • 手写 bind、apply、call

  • setTimeout(fn, 0)多久才执行,Event Loop

  • 手写题:Promise 原理

  • 说一下原型链和原型链的继承吧

  • 数组能够调用的函数有那些?

  • PWA使用过吗?serviceWorker的使用原理是啥?

  • ES6 之前使用 prototype 实现继承

  • 箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?

  • 事件循环机制 (Event Loop)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值