8月更文挑战 | 前端计算机网络面试题汇总(其他)

302 阅读4分钟

这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战

1.HTTP常见状态码

  1. 1XX(信息状态码)
    • 100:Continue,在发送POST请求时,发送header信息以后,服务端将返回此状态码,表示确认,此后可继续发送数据
  2. 2XX(成功状态码)
    • 200:OK,正常返回信息
    • 201:Create,请求成功且服务器创建了新的资源
    • 202:Accepted,服务器接受了请求但尚未处理
  3. 3XX(重定向
    • 301:Moved Permanently永久重定向,请求的页面已永久移动到新位置
    • 302:Found临时重定向
    • 303:See Other临时重定向,且总使用GET方法请求新的URI
    • 304:Not Modified,自上次请求,页面未修改
  4. 4XX(客户端错误)
    • 400:Bad Request,服务器无法理解的请求格式
    • 401:Unauthorized,请求未授权
    • 403:Forbidden禁止访问
    • 404:Not Found找不到与该URI匹配的资源
  5. 5XX(服务端错误)
    • 500:Internal Server Error,服务端错误
    • 502:Bad Gateway,服务器网关错误
    • 503:Service Unavailable,服务端暂时无法处理请求

2.304状态码

如果客户端发送了一个带条件的GET请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码(前提:浏览器中已有缓存,才能进行对比。)

3.301与302的区别

  • 301:表示该资源已被永久移动到新的位置,新的位置在该响应返回的URI中,该响应一般情况下可以缓存
  • 302:表示该资源被临时移动,应临时从不同的URI访问该资源,该响应一般情况下不可缓存(除非设置ExpiresCache-Control
  • 应用方面:301常用于做页面跳转302用于做临时跳转(如:未登录用户跳转到登陆界面)

4.GET与POST的区别

方面GETPOST
参数传递存放在URL存放在Request Body
长度限制有长度限制(主要是浏览器限制无长度限制
安全性不安全,暴露在网址中安全,网址中看不出请求参数
编码方式仅支持URL编码支持多种编码方式
缓存浏览器主动缓存不能缓存
参数保留浏览器保留参数浏览器不保留参数
后退无害数据会被重新提交
幂等性幂等幂等性
副作用副作用副作用
应用查询提交修改

还有一个有争议的说法:POST请求会产生两个数据包而GET请求只产生一个,其实,POST请求产生两个数据包是headerbody分开发送产生的结果,而这是非必然的,headerbody是否分开发送取决于浏览器或框架的请求方法,不是POST请求的必然行为

5.fetch发送两次请求

fetch发送POST请求,总共发送两次,第一次发送了Options请求,询问服务端是否支持修改的请求头,如果允许,则进行第二次发送(此时发送数据

6.CDN

CDN全称:Content Delivery Network(内容分发网络)

  • 思路:尽可能避开互联网上有可能影响数据传输速度稳定性的瓶颈和环节,使内容传输的更快、更稳定。
  • 方法:多个CDN节点服务器对源站资源进行缓存,在用户访问时通过全局负载技术将用户访问指向就近的节点,由CDN节点响应用户的请求
  • 目的:让用户就近访问到资源,加快用户访问速度
  • 优点:
    • 解决跨地区跨运营商访问的问题,降低访问延时
    • 对源站起到分流作用,降低源站负载

7.DNS

DNS全称:Domain Name System(域名服务系统)

DNS概念:

  • 分层DNS服务器实现的分布式数据库
  • 一个让主机能够查询分布式数据库的应用层协议 说明:
  • 对于浏览器来说,DNS就是用来将域名转换成IP地址
  • 查询方法:递归查询+迭代查询
  • 递归查询:本机本地DNS服务器进行查询,并返回查询结果
  • 迭代查询:本地DNS服务器不断向TLD(顶级域)权威DNS服务器进行域名查询并获取查询结果