狐七的面试题库

整理,永远在路上~

HTTP网络状态码

3/12/2022 计算机网络

# 1. HTTP 的状态码:1~5开头各是什么作用

查看答案
  • 1**:信息,服务器收到请求,需要请求者继续执行操作
  • 2**:成功,操作被成功接收并处理
  • 3**:重定向,需要进一步的操作以完成请求
  • 4**:客户端错误,请求包含语法错误或无法完成请求
  • 5**:服务器错误,服务器在处理请求的过程中发生了错误

# 2. 说出你知道的状态码都有哪些?

查看答案
  • 200 —— 请求正常处理,GET返回主体,HEAD不会返回主体
  • 204 —— 请求处理成功,没有资源返回,浏览器显示的页面不发生更新
  • 206 —— 客户端进行了范围请求,服务端成功执行,响应报文中有Content-Range指定范 围的内容
  • 301 —— 永久性重定向
  • 302 —— 临时性重定向(POST改为GET)
  • 304 —— 服务器资源未改变,可以直接使用缓存文件
  • 307 —— 临时性重定向,不允许POST改成GET
  • 400 —— 请求报文中存在语法错误
  • 401 —— 认证失败,未授权
  • 403 —— 请求资源被服务器拒绝,访问无权限
  • 404 —— 服务器上无法找到请求的资源
  • 500 —— 服务器发生了错误
  • 501 —— 服务器不具备请求功能。例如,服务器无法识别请求方法时可能会返回此代码。
  • 502 —— 网关错误。服务器作为网关或代理,从上游服务器收到无效响应。
  • 503 —— 服务器超负载或者停机维护
  • 504 —— 网关超时
  • 505 —— 服务器不支持当前http版本

# 3. 状态码302和307的区别是什么?

查看答案

虽然301,302都规定了禁止将POST请求改为GET,但是实际大家都不这么做,而307是禁止在重定向的时候将POST请求改为GET。

# 4. 500可能的原因

查看答案
  1. php语法错误
  2. 系统限制不能打开过多文件

# 5. 502可能的原因

查看答案
  1. nginx服务器php-cgi进程数不够用,php-fpm.conf中的max_children打满后悔出现
  2. php执行时间过长,php.ini中的max_execution_time(执行时间),request_terminate_timeout(超时时间)参数
  3. php-cgi进程死掉
  4. 数据库超时

# 6. 504可能的原因

查看答案

请求没有到可以执行的php-fpm,一般与nginx.conf配置文件有关

  • fastcgi超时
  • fastcgi缓冲区大小太小
  • fastcgi临时文件写入大小

# 7. HTTP状态码304是多好还是少好

查看答案

搜索引擎爬虫会更加青睐内容源更新频繁的网站。通过特定时间内对网站抓取返回的状态码来调节对该网站的抓取频次。若网站在一定时间内一直处于304的状态,那么爬虫可能会降低对网站的抓取次数。相反,若网站变化的频率非常之快,每次抓取都能获取新内容,那么日积月累的回访率也会提高。

产生较多304状态码的原因:

  1. 页面更新周期长或不更新
  2. 纯静态页面或强制生成静态html
更新时间: 2022-03-31 02:04