Http状态码简介

  【百度百科HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一(1-消息,2-成功,3-重定向,4-请求错误,5-服务器错误)。所示的消息短语是典型的,但是可以提供任何可读取的替代方案。 除非另有说明,状态码是HTTP / 1.1标准(RFC 7231)的一部分。

  下面结合 Nginx 服务来实验一下,几种常见的状态码出现的情况。 这里使用到的 Nginx 版本是 nginx-1.17.5

200 OK

  启动 Nginx 后,第一次请求 localhost,返回 200 OK,表示 【请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。】

304 Not Modified

  再次请求 localhost, 返回 304 Not Modified,表示【客户端发现请求在客户端缓存中存在,则将请求发送给服务器,服务器发现自上次相同请求后,请求资源并没有改变,并向客户端返回 304 状态码,请求的资源将从客户端缓存中获取。】

可以看出在请求头(Request Headers)中会发送 If-Modified-Since 给服务器。如果是第一次请求,或者在客户端缓存中没有找到请求的话,则不会在请求头发送这个字段。

  

404 Not Found

请求一个不存在的 url 地址,返回 404 Not Found,表示【请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。】

  

502 Bad Gateway

首先在 Nginx 内配置一个转发如下:  路径为 /api/ 会转发到 http://localhost:8080 这个服务器上,当然这个服务器并没有启动,所以无法从这个服务器得到有效的响应。

  

  请求后返回显示如下: 502 Bad Gateway 表示【作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。】

结合 Nginx 谈谈 Http 状态码的更多相关文章

  1. Nginx code 常用状态码学习小结

    最近了解下Nginx的Code状态码,在此简单总结下.一个http请求处理流程: 一个普通的http请求处理流程,如上图所示:A -> client端发起请求给nginxB -> ngin ...

  2. zabbix监控多个nginx vhost网站状态码

    需求 假设一台服务器运行了N个vhost网站,如何确定在大流量并发时候找到是哪个网站的问题呢? 这似乎是每个运维都会遇到的问题,方法有很多比如:1.看nginx日志大小确定访问量.2.通过前端代理确定 ...

  3. 统计nginx日志的状态码

    日志格式 61.159.140.123 - - [23/Aug/2014:00:01:42 +0800] "GET /favicon.ico HTTP/1.1" 404 \ &qu ...

  4. nginx 直接返回状态码

    server { listen 80; server_name service.aaa.com; location / { add_header Content-Type "text/pla ...

  5. 检测Nginx访问成功(状态码200)的IP及次数

    cat  access.log |awk '{print $1,$9}'|grep '200'|sort | uniq -c|awk '{print $2" "$1}'

  6. Nginx code 状态码说明

    最近了解下Nginx的Code状态码,在此简单总结下. 先来再回顾一下一个http请求处理流程: 一个普通的http请求处理流程,如上图所示: A -> client端发起请求给nginx B ...

  7. zabbix监控nginx日志状态码

    监控需求 监控Nginx常见的状态码并对其进行监控,对常见的错误状态码创建相对应的触发器以下按照分钟对数据进行抓取 Zabbix_Agentd创建监控脚本 1)创建脚本之前核对Nginx日志格式我这里 ...

  8. [日常] HTTP协议状态码

    100-199 信息性状态码 100 continue 请继续 101 switching protocols 切换协议,返回upgraded头 200-299 成功状态码 200 ok 201 cr ...

  9. nginx 499 状态码优化

    在grafana界面中发现不少499的状态码,在网上了解到出现499的原因大体都是说服务端处理时间过长,客户端主动关闭了连接.   既然原因可能是服务端处理时间太长了,看一下upstream_resp ...

随机推荐

  1. Count on a tree 树上主席树

    Count on a tree 树上主席树 给\(n\)个树,每个点有点权,每次询问\(u,v\)路径上第\(k\)小点权,强制在线 求解区间静态第\(k\)小即用主席树. 树上主席树类似于区间上主席 ...

  2. js 的 二进制

    1. 整数 例如十进制的 30 30/2  .......... 0 15/2 ............ 1 7/2 ............ 1 3/2 .............. 1 1/2 . ...

  3. python map() 的使用方法

    >>>def square(x) : # 计算平方数 ... ... >>> map(square, [,,,,]) # 计算列表各个元素的平方 [, , , , ...

  4. Ubuntu 14.04 源

    清华源https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ ubuntu 14.04 官方源 # deb cdrom:[Ubuntu 14.04.4 LT ...

  5. C++删除字符串的前后空格

    函数: string trim(string& str) { str.erase(0, str.find_first_not_of(" \t")); // 去掉头部空格 s ...

  6. elasticsearch配置jdk

    编辑bin/elasticsearch 可以看到elasticsearch使用环境变量JAVA_HOME中配置的jdk:if [ -x "$JAVA_HOME/bin/java" ...

  7. Wireshark过滤命令总结

    1.表达式1 (tcp.flags.reset == )&&(tcp.seq == ) 2.表达式2 (tcp.flags.syn == )&&(tcp.analysi ...

  8. Vue学习手记03-路由跳转与路由嵌套

    1.路由跳转 添加一个LearnVue.vue文件, 在router->index.js中 引入import Learn from '@/components/LearnVue' 在touter ...

  9. MySQL 中视图和表的区别以及联系是什么?

    两者的区别: (1)视图是已经编译好的 SQL 语句,是基于 SQL 语句的结果集的可视化的表,而表不是. (2)视图没有实际的物理记录,而基本表有. (3)表是内容,视图是窗口. (4)表占用物理空 ...

  10. Macbook上打开多个终端的方法

    方法有如下两种 1.首先是的焦点在终端上(使用鼠标点击下终端).然后使用快捷键command+N 即可得到另一个终端界面. (如果现在光标的焦点在浏览器上,那么就是新打开一个浏览器窗口) 2.同样,光 ...