HTTP 高频面试题2021

790 阅读4分钟

1. TCP、UDP 区别

1.TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。
2.虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为
3.对数据准确性要求高,速度可以相对较慢的,可以选用TCP

2. Http、Https区别

  1. HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
  2. HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
  3. 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层
  4. HTTP 无法加密,而HTTPS 对传输的数据进行加密(HTTPS 是安全的)
  5. HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书

3. GET、POST区别

  • GET在浏览器回退不会再次请求,POST会再次提交请求
  • GET请求会被浏览器主动缓存,POST不会,要手动设置
  • GET请求参数会被完整保留在浏览器历史记录里,POST中的参数不会
  • GET请求在URL中传送的参数是有长度限制的,而POST没有限制
  • GET参数通过URL传递,POST放在Request body中
  • GET参数暴露在地址栏不安全,POST放在报文内部更安全
  • GET一般用于查询信息,POST一般用于提交某种信息进行某些修改操作
  • GET产生一个TCP数据包;POST产生两个TCP数据包

4. Http三次握手

第一步:客户端发送SYN报文到服务端发起握手,发送完之后客户端处于SYN_Send状态
第二步:服务端收到SYN报文之后回复SYN和ACK报文给客户端
第三步:客户端收到SYN和ACK,向服务端发送一个ACK报文,客户端转为established状态,此时服务端收到ACK报文后也处于established状态,此时双方已建立了连接

5. 同源策略

一个域下的js脚本未经允许的情况下, 不能访问另一个域下的内容。
判断跨域的依据是协议、 域名、 端口号是否相同, 不同则跨域。

6. 跨域通信的几种方式

  • jsonp(利用script标签没有跨域限制的漏洞实现。缺点:只支持GET请求)
  • CORS(设置Access-Control-Allow-Origin:指定可访问资源的域名)
  • postMessage(message, targetOrigin, [transfer])(HTML5新增API 用于多窗口消息、页面内嵌iframe消息传递),通过onmessage监听传递过来的数据
  • Websocket是HTML5的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案。
  • Node中间件代理
  • Nginx反向代理

  • 注意:日常工作中用的最多的跨域方案是CORS和Nginx反向代理

7. 浏览器的本地存储?各自优劣如何?

浏览器的本地存储主要分为Cookie、WebStorage, 其中WebStorage又可以分为localStorage和sessionStorage。

共同点: 都是保存在浏览器端、且同源的

不同点:

  1. cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。

  2. 存储大小限制也不同

    cookie数据不能超过4K,sessionStorage和localStorage可以达到5M sessionStorage:仅在当前浏览器窗口关闭之前有效; localStorage:始终有效,窗口或浏览器关闭也一直保存,本地存储,因此用作持久数据; cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭

  3. 作用域不同

    sessionStorage:不在不同的浏览器窗口中共享,即使是同一个页面; localstorage:在所有同源窗口中都是共享的;也就是说只要浏览器不关闭,数据仍然存在 cookie: 也是在所有同源窗口中都是共享的.也就是说只要浏览器不关闭,数据仍然存在

8. 从输入url到获取页面的完整过程

  1. DNS解析:将域名解析为ip地址
  2. 建立TCP连接: 客户端浏览器与WEB服务器建立TCP(传输控制协议)连接,三次握手【浏览器-->服务器,服务器-->浏览器,浏览器-->服务器】
  3. 发送请求:请求报文 http协议的通信内容
  4. 响应请求:响应报文
  5. 渲染页面:dom树、css树、合并渲染树计算布局 绘制;
  6. 断开连接: TCP四次挥手。【浏览器-->服务器,服务器-->浏览器,服务器-->浏览器,浏览器-->服务器】
    http对应于应用层,Tcp协议对应于传输层,http协议是在Tcp协议之上建立的;