结合 Nginx 谈谈 Http 状态码
【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 状态码的更多相关文章
- Nginx code 常用状态码学习小结
最近了解下Nginx的Code状态码,在此简单总结下.一个http请求处理流程: 一个普通的http请求处理流程,如上图所示:A -> client端发起请求给nginxB -> ngin ...
- zabbix监控多个nginx vhost网站状态码
需求 假设一台服务器运行了N个vhost网站,如何确定在大流量并发时候找到是哪个网站的问题呢? 这似乎是每个运维都会遇到的问题,方法有很多比如:1.看nginx日志大小确定访问量.2.通过前端代理确定 ...
- 统计nginx日志的状态码
日志格式 61.159.140.123 - - [23/Aug/2014:00:01:42 +0800] "GET /favicon.ico HTTP/1.1" 404 \ &qu ...
- nginx 直接返回状态码
server { listen 80; server_name service.aaa.com; location / { add_header Content-Type "text/pla ...
- 检测Nginx访问成功(状态码200)的IP及次数
cat access.log |awk '{print $1,$9}'|grep '200'|sort | uniq -c|awk '{print $2" "$1}'
- Nginx code 状态码说明
最近了解下Nginx的Code状态码,在此简单总结下. 先来再回顾一下一个http请求处理流程: 一个普通的http请求处理流程,如上图所示: A -> client端发起请求给nginx B ...
- zabbix监控nginx日志状态码
监控需求 监控Nginx常见的状态码并对其进行监控,对常见的错误状态码创建相对应的触发器以下按照分钟对数据进行抓取 Zabbix_Agentd创建监控脚本 1)创建脚本之前核对Nginx日志格式我这里 ...
- [日常] HTTP协议状态码
100-199 信息性状态码 100 continue 请继续 101 switching protocols 切换协议,返回upgraded头 200-299 成功状态码 200 ok 201 cr ...
- nginx 499 状态码优化
在grafana界面中发现不少499的状态码,在网上了解到出现499的原因大体都是说服务端处理时间过长,客户端主动关闭了连接. 既然原因可能是服务端处理时间太长了,看一下upstream_resp ...
随机推荐
- [TJOI2013]奖学金 乱搞
[TJOI2013]奖学金 乱搞 从\(c\)个二元组\((v,w)\)中选出\(n\)个,使其\(v\)的中位数最大的同时使\(w\)和小于等于\(f\),求这个中位数 有点意思.有点像二分答案的思 ...
- 学习C/C++的简单方法
如何学习C++呢.C和C++是很多专业的必修课,尤其对计算机专业来说,更是重中之重.C++语言是早期发展的高级语言,具备执行速度快,语法优美等特点.是底层高效率系统的首选开发语言.今天就和大家分享一下 ...
- Ubuntu 14.04 卸载通过源码安装的库
cd cere-solvermkdir buildcd buildcmake ..sudo makesudo make install 卸载通过以上方式源码安装的库 再次进入buildsudo mak ...
- ERROR: node with name "rabbit" already running on "localhost"
rabbitmqctl start_app启动没有这个问题
- 小程序开发--WePy框架
现如今mvvm框架如此火热,其核心思想即js逻辑层不直接操作DOM,只改变组件状态:而视图层则通过模板template进行渲染. 1.WePy项目的目录结构 ├── dist 小程序运行代码目录 ├─ ...
- TS声明文件
now我们来看一看TS怎么声明文件, 在JS里面我们经常会使用各种第三方类库,引入方式也不太相同,常见的就是在HTML中通过script标签引入,然后就可以使用全局变量$或者jQuery了 我们通常这 ...
- LeetCode 第 153 场周赛
一.公交站间的距离(LeetCode-5181) 1.1 题目描述 1.2 解题思路 比较简单的一题,顺时针.逆时针两次遍历,就能解决. 1.3 解题代码 class Solution { publi ...
- OpenWrt笔记
## 1. OpenWrt目录结构说明 作者:辛勤的摆渡人 来源:CSDN 原文:https://blog.csdn.net/hunter168_wang/article/details/507805 ...
- BitmapFactory之Options
package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...
- 放射渐变RadialGradient
public RadialGradient(float centerX, float centerY, float radius, int[] colors, float[] stops, TileM ...