【明年找到好工作】:面试题打卡第一天

http 和 https

1、http:超文本传输协议;https: 是以安全为目标的HTTP通道,在HTTP的基础下添加了SSL

2、http:明文传输;https:通过SSL进行加密,安全性比http要好

3、http是80端口;https是443端口

4、https:需要ca证书,费用高

5、https协议的工作原理

  • 客户端使用 https url 访问服务器(要求web服务器建立ssl链接)
  • web服务器接收到客户端的请求后,会将网站的证书(证书包含了公钥),返回给客户端。
  • 客户端接收后,客户端和web服务器开始协商 ssl 链接的安全等级(加密等级)
  • 达成一致后,建立会话密钥,然后通过网站的公钥来加密会话密钥,并传送到网站
  • web服务器通过自己的私钥解密出会话密钥
  • web服务器通过会话密钥加密与客户端之间的通信

在这里插入图片描述

6、https的缺点

  • 握手阶段比较费事
  • 缓存不如http高效,会增加数据开销
  • SSL证书费用高

TCP 和 UDP 的区别

1、TCP是面向连接UDP是无连接的(即发送数据前无需先建立链接)‘

2、TCP提供可靠的服务(通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达)

3、UDP尽最大努力交付

4、TCP面向字节流UDP面向报文,并且网络出现拥塞不会使得发送速率降低(因此会出现丢包,对实时的应用)

5、TCP只能1对1的;UDP支持1对1,1对多

6、TCP的首部较大为20字节,而UDP只有8字节


webSocket的实现和应用

1、什么是 WebSocket

  • WebSocket是一种协议,可以在单个TCP连接上进行全双工通信(可以让服务端主动向客户端推送数据)
  • 在WebSocket中,浏览器与服务器只需要完成一次握手,两者之间就可以创建持久性的连接并进行双向数据传输

2、Websocket握手环节

  • 客户端向服务端发送请求
  • 服务端根据客户端的请求切换到WebSocket 协议
  • 服务端告知客户端服务器可以发起WebSocket连接
  • 客户端发起连接的约定
  • 客户端检查服务端的响应
  • 服务端处理客户端连接

HEAD请求与GET请求的区别
  • HEAD请求跟GET请求相同,同样能够拿到响应头,但是不返回数据实体
  • HEAD请求通常是用来在下载文件之前,获取远程服务器上的文件信息

BOM属性方法

1、location 对象

  • location.href – 返回或设置当前文档的URL
  • location.search – 返回URL中的查询字符串部分(?id=5&name=haohao)
  • location.hash – 返回 URL#后面的内容
  • location.host – 返回URL中域名部分(www.baidu.com)
  • location.hostname – 返回URL中主域名部分(baidu.com)
  • location.pathname – 返回URL域名后的部分(www.baidu.com/a 返回/a)
  • location.port – 端口号
  • location.port – 协议
  • location.assign – 设置当前文档的URL
  • location.replace – 设置当前文档的URL(并且在history对象的地址列表中移除这个url)
  • location.reload() – 重载当前页面

2、history 对象

  • history.go() – 前进或后退指定的页面数
  • history.back() – 后退一页
  • history.forward() – 前进一页

3、navigator 对象

  • navigator.useAgent – 返回用户代理头的字符串

  • navigator.cookieEnabled – 返回浏览器是否支持(启用)cookie


HTML5 拖拽 api
  • dragstart: 事件主体是被拖放元素,在开始拖放时触发
  • drag:事件主体是被拖放元素,正在拖放时触发
  • dragenter:事件主体是目标元素,在被拖放元素进入某元素时触发
  • dragover:事件主体是目标元素,在被拖放元素在某元素内移动时触发
  • dragleave:事件主体是目标元素,在被拖放元素移出某元素时触发
  • drop:事件主体是目标元素,在目标元素完全接受被拖放元素时触发
  • dragend:事件主体是被拖放元素,在整个拖放操作结束时触发

http2.0

1、http2.0是基于1999年发布的http1.0之后的首次更新

2、请求资源所需时间更少,访问速度更快

3、二进制分帧(在应用层(HTTP)和传输层(TCP)之间增加一个二进制分帧层)

  • 帧:HTTP2.0通信的最小单位,所有帧都共享一个8字节的首部
  • 消息:比帧大的通信单位,是指逻辑上的HTTP消息,比如请求、响应等。由一个或多个帧组成
  • 流:比消息大的通信得。是TCP连接中的一个虚拟通道,可以承载双向的消息。每一个流都有唯一的整数标识符

在 http1.x 中传输数据使用的是文本传输数据;基于文本传输数据存在很多缺陷。而二进制不同,只有0和1的组合

在http2.0中所有传输的数据都会被分割为更小的消息和帧,并采用二进制格式编码

在http1.x的首部信息会被封装到Headers帧中,而Rquest Body则封装搭配Data帧中。

4、首部压缩

http1.x中并不支持首部压缩;在http2.0中则支持,使用首部压缩的算法是HPACK算法

在http1.x中,使用的是文本形式进行传输,如果在header中需要携带cookie,则每次传输都传输重复数据

在http2.0中,除了通过使用压缩算法压缩首部信息外,在客户端以及服务端都会维护一张索引表(用于记录曾经出现过的header),在后面请求过程中可以重复使用header。而对于接收端就可以通过键名找到对应的值

5、多路复用

在http1.x中由于浏览器限制同一个域名下的请求数量。因此,在页面需要请求很多资源时,队头会出现阻塞,只有等待前面资源加载完毕后才会加载下一个资源。

而在http2.0中,基于二进制分帧,将http消息拆分成独立的帧(在不破坏信息的前提下),交错发出。而在另外一端根据流标识符和首部将这些帧重新组装。

6、请求优先级

把HTTP消息分为很多独立帧之后,就可以通过优化这些帧的交错和传输顺序进一步优化性能

7、服务器推送

服务器可以对一个客户端请求发送多个响应

比如:

  • 客户端请求资源1,服务端在响应资源1的同时再次推送资源2、资源3
  • 如果该请求是从主页发出的,服务端可能会响应主页内容、logo以及样式表

缺点:所有推送资源必须遵守同源策略


400、401、403状态码

1、400:请求无效

  • 可能产生的原因:前端提交数据的字段名称和字段类型与后台的实体没有保持一致

2、401:当前请求需要用户验证

3、403:服务器已经得到请求,但拒绝执行


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海面有风

您的鼓励将是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值