关于接口的面试题

1.get和post的区别

  • get请求可以被缓存
    post不会被缓存

  • get是获取指定的资源
    post是向指定的资源提交要被处理的数据

  • get的参数只能支持ASCII
    post没有限制,也允许二进制的数据

  • get产生一个tcp数据包
    post产生两个tcp数据包,时间上消耗要更多一些

  • get操作是幂等的,可以放心的重复发送请求
    post不是幂等的,重复发送请求可能会带来无法想象的后果


2.cookie,session和token的区别

  • cookie数据是存在浏览器上,session是存在服务器上。
  • cookie不是很安全,可以抓取存放在本地进行Cookie欺骗,session相对于更安全。
  • session会在一定时间内保存在服务器上,访问量增多的话,会占用服务器更多的资源,影响性能。
    cookie存在浏览器,访问速度更快,不会给服务器增加压力。
  • cookie可以设置属性达到长期有效。
    session是依赖于sessionID的cookie,只要关闭窗口session就会失效。
  • token是支持跨域访问的,cookie不允许
    token的状态是存在客户端的
  • 作为身份认证,token安全性比session好
    因为每个请求都有签名还能防止监听以及重放攻击,而session就必须靠链路层来保障通讯安全了

3.三次握手,四次挥手

三次握手指的是创建连接的过程:

  • 首先,客户端向服务器发送一个请求,询问是够可以发送数据;
  • 服务器收到请求后,如果同意,就会响应一个确认报文;
  • 客户端收到确认报文后,就开始发送数据

第一次握手:建立连接时,客户端向服务器发送请求报文(SYN)。(我想建立连接)
第二次握手:服务器收到请求报文后,如果同意连接,则向客户端发送确认报文(SYN/ACK)。(同意连接)
第三次握手:客户端收到服务器的确认后,再次向服务器发送确认报文,完成连接(ACK)。(连接完成)

四次挥手指的是断开连接的过程:

  • 客户端向服务器发送一个请求,询问是否可以断开连接;
  • 服务器会响应自己当前的状态,如果准备好了,会向客户端发送一个断开连接的请求
  • 如果没有准备好,还有数据未响应完,会等响应完再给客户端发送请求
  • 最后服务器端和客户端断开连接

第一次挥手:客户端想分手,发送消息(FIN)给服务器
第二次挥手:服务器通知客户端已经接受了分手的请求,返回确认消息(ACK),但还没有做好分手的准备
第三次挥手:服务端已经做好分手的准备,通知客户端(FIN)可以分手了
第四次挥手:客户端发送消息给服务器(ACK),确认分手,服务器关闭连接


4.你知道的常用状态码有哪些,代表什么意思?

各个状态码代表的意思:

  • 1xx:指示信息(info) -- 表示服务器收到请求,需要请求者继续执行操作
  • 2xx:成功(successful) -- 表示请求已被成功接收,理解、接收
  • 3xx:重定向(Redirection) -- 要完成请求必须进行更进一步的操作
  • 4xx:客户端错误(Client Error) -- 表示请求可能有语法错误或请求无法实现,妨碍了武器的处理
  • 5xx:服务器错误(Server Error) -- 表示服务器在处理请求的过程中发生了内部错误,未能实现合法的请求

常见状态码:

  • 200:成功 ——服务器已成功处理了请求
  • 301:永久移动 ——请求永久重定向,请求的页面已永久转移到新位置
  • 302:临时移动 ——请求临时重定向,服务器目前从不同位置的网页响应请求,资源只是临时被移动
  • 304:未修改 ——文件未修改,可以直接使用缓存的文件
  • 400:错误请求 ——由于客户端请求语法有错误,不能被服务器所理解
  • 401:未授权 ——请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
  • 403:禁止 ——服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
  • 404:未找到 ——请求的资源不存在,例如输入了错误的url
  • 500:服务器内部错误 ——服务器发生不可预期的错误,导致无法完成客户端的请求
  • 503:服务不可用 ——服务器当前不能够处理客户端得到请求,在一段时间之后,服务器可能会恢复正常

5.输入url后的过程

  • 域名解析,DNS解析 ==》ip地址
  • 发起TCP连接的三次握手,建立连接
  • 建立TCP连接后发起http请求
  • 服务端响应http请求,返回响应报文
  • 浏览器页面渲染,展示
  • 断开TCP连接,四次挥手
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。