1.100-199信息响应

100 Continue: 服务器通知浏览器之前一切正常,请客户端继续请求,如果请求结束,可忽略;

101 Switching Protocal: 针对请求头的Upgrade返回的信息。表明服务器正在切换到指定的协议。

Upgrade是HTTP1.1提出的升级机制,可以升级到其他协议。

如果使用,客户端需要设置如下:

Connection: Upgrade
Upgrade: protocol-name[/protocol-version]

服务器如果不同意直接忽略;如果同意,响应如下:

HTTP/1.1 101 Switching Protocols
Connection: upgrade
Upgrade: protocol-name[/protocol-version]

例如:1)升级WebSocket

客户端请求如下:

GET ws://example.com/ HTTP/1.1
Connection: Upgrade
Upgrade: websocket
Origin: http://example.com
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: d4egt7snxxxxxx2WcaMQlA==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits

服务器如果同意,响应如下:

HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: gczJQPmQ4Ixxxxxx6pZO8U7UbZs=

2)升级到http2

客户端请求如下:

GET / HTTP/1.1
Host: example.com
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c // h2c是http2的名称
HTTP2-Settings: <base64url encoding of HTTP/2 SETTINGS payload>

服务端如果同意,响应如下:

HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: h2c

103 Early Hints: 此状态代码主要用于与Link 链接头一起使用,以允许用户代理在服务器仍在准备响应时开始预加载资源

2.200-299成功响应

200 OK: 请求成功

201 Created: 常用于POST,PUT 请求,表明请求已经成功,并新建了一个资源。并在响应体中返回路径。

202 Accepted: 请求已经接收到,但没有响应,稍后也不会返回一个异步请求结果。 该状态码适用于等待其他进程处理或者批处理的场景。

203 No-Authoritative Information: 表明响应返回的元信息(meta-infomation)和最初的服务器不同,而是从本地或者第三方获取的。

主要用于其他资源的镜像和备份。除了前面的情况,首选还是200。

204 No Content: 请求没有数据返回,但是头信息有用。用户代理(浏览器)会更新缓存的头信息。

205 Reset Content: 告诉用户代理(浏览器)重置发送该请求的文档。

206 Partical Content: 当客户端使用Range请求头时,返回该状态码。

// 通过curl发起http请求-->响应行为:HTTP/1.1 206 Partial Content
curl -v --header "Range:bytes=0-3" http://www.baidu.com

名次解释: 用户代理: 代替用户运行的软件,如web浏览器,或者邮件阅读器。

3.300-399重定向消息

300 Multiple Choice: 返回多个响应,需要浏览器或者用户选择;

301 Moved Permanently: 请求资源的URL被永久的改变,新的URL会在响应的Location中给出。

浏览器到新的URL重新请求资源,因为有些客户端会把请求方式method改成GET。所以该状态码建议GET和HEAD方法中使用。

搜索引擎会更新地址到资源的链接(SEO中‘link-judge’被发送到新的URL)。

302 Found:  请求资源的URL被暂时修改到Location提供的URL。未来可能还会有新的修改。

浏览器会根据新的URL重新请求资源。有些客户端会把方法method改为GET,建议在GET和HEAD方法中使用。

搜索引擎不会更改URL到资源的。

// 应用
负载均衡

303 See Other: 服务通过返回的响应数据指导客户端通过GET方法去另一个URL获取资源。

通常用于POST或者PUT的请求返回结果,重定向到信息提示页面或者进度展示页面。

重定向页面的方法是GET方法。

304 Not Modified: 资源未变更。服务器根据请求头判断,需要资源未修改,只返回响应头;否则将资源一起返回。

发生场景:1)请求方法安全(如GET,HEAD请求)

2)条件请求并且使用了If-None-Match或者If-Modified-Since 的请求头

如果想使用200状态码达到相同304效果,需要强制缓存,需要额外的请求头:Cache-Control, Expires, Vary

307 Temporary Redirect: 临时重定向。基本和302相同。

唯一的区别是这个状态码严格禁止浏览器到新URL请求资源时修改原来的请求方式和请求体。

就是说原来使用POST,这次还是要使用POST。

如果想要用PUT方法去修改一个服务器上没有的资源,可以用303状态码

如果想要把一个POST方法改为GET,请使用303。

308 Permanent Redirect: 永久重定向。基本和301相同。但是严格禁止修改请求方式和请求体。

4. 400-499 客户端错误响应

400 Bad Request: 请求语法有问题,服务器无法识别。

没有host请求头字段,或者设置了超过一个的host请求头字段。

401 UnAuthorized: 客户端未授权该请求。缺乏有效的身份认证凭证,一般可能是未登陆。登陆后一般都解决问题。

403 Forbidden: 服务器拒绝响应。权限不足。

404 Not Found: URL无效或者URL有效但是没有资源。

405 Method Not Allowed: 请求方式Method不允许。但是GET和HEAD属于强制方式,不能返回这个状态码。

406 Not Acceptable: 资源类型不符合服务器要求。

407 Proxy Authorization Required: 需要代理授权。

408 Request Timeout:服务器将不再使用的连接关闭。响应头会有Connection: close。

426 Upgrade Required: 告诉客户端需要升级通信协议。

5. 500-599 服务器错误响应

500 Internal Server Error: 服务器内部错误,未捕获。

502 Bad Gateway: 服务器作为网关使用时,收到上游服务器返回的无效响应。

503 Service Unavailable: 无法服务。一般发生在因维护而停机或者服务过载。

一般还会伴随着返回一个响应头Retry-After: 说明恢复服务的估计时间。

504 Gateway Timeout: 网关超时。服务器作为网关或者代理,不能及时从上游服务器获取响应返回给客户端。

505 Http Version Not Supported: 发出的请求http版本服务器不支持。如果请求通过http2发送,服务器不支持http2.0,就会返回该状态码。

常见http响应状态码(status)的更多相关文章

  1. 常见HTTP响应状态码

    分类 分类 分类描述 1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作成功接收并处理 3** 重定向,需要进一步的操作以完成请求 4** 客户端错误,请求包含语法错误或无法完成 ...

  2. iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全

    一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...

  3. 常见的HTTP状态码(HTTP Status Code)说明

    作为一个互联网开发人员对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一弄清楚,工作中遇到的各种问题才能够处理的得心应手.好了,下面就让我们来了解一下比较常见的HTTP状态 ...

  4. HTTP协议—常见的HTTP响应状态码解析

    常见的HTTP响应状态码解析 1XX Informational(信息性状态码) 2XX Success(成功状态码) 3XX Redirection(重定向状态码) 4XX Client Error ...

  5. HTTP常见响应状态码及解释、常用请求头及解释

    1.HTTP常见响应状态码及解释2XX Success(成功状态码) 200 表示从客户端发来的请求在服务器端被正常处理204 该状态码表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主 ...

  6. 常见的HTTP响应状态码解析

    概要 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果.借助于状态码,浏览器(或者说用户)可以知道服务器是正常的处理了请求,还是出现了错误. 状态码以3位数字和原因短语组成,例如 200 ...

  7. 9. http协议_响应状态码_页面渲染流程_路由_中间件

    1. http协议 超文本传输协议 协议详细规定了 浏览器 和 万维网服务器 之间互相通信的规则 客户端与服务端通信时传输的内容我们称之为报文(请求报文.响应报文) 常见的发送 get 请求方式 在浏 ...

  8. http协议详解及htt面试题目,常见的http状态码

    http协议详解及htt面试题目,常见的http状态码 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. HTTP ...

  9. 常见的HTTP状态码有哪些?

    当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求. ...

随机推荐

  1. laravel6.0路由

    1.基本路由路由定义在routes目录下,路由执行是在控制器之前,路由路径 routes目录下api.php 关于接口路由定义文件包含的路由位于 api 中间件组约束之内,支持频率限制功能,这些路由是 ...

  2. Appium移动端自动化测试--元素操作与触摸动作

    常见自动化动作支持 click sendKeys swipe touch action 元素操作 1.click()点击操作 也可以用tab实现点击操作 driver.find_element_by_ ...

  3. Python连接ORACLE操作

    一.准备工作 1.安装cx_Oracle ttps://pypi.python.org/pypi下查找cx_Oracle并下载 执行安装命令 pip install cx_Oracle-6.0rc1- ...

  4. PAT(B) 1018 锤子剪刀布(C:20分,Java:18分)

    题目链接:1018 锤子剪刀布 分析 用一个二维数组保存两人所有回合的手势 甲乙的胜,平,负的次数刚好相反,用3个变量表示就可以 手势单独保存在signs[3]中,注意顺序.题目原文:如果解不唯一,则 ...

  5. 【规律】Parentheses

    Parentheses 题目描述 Dave loves strings consisting only of '(' and ')'. Especially, he is interested in ...

  6. docker部署mysql,nginx,php,并上传镜像到私有仓库

    前言 最近公司准备把现有环境全部搞成容器化,所以笔者就先了解了一下docker,并搞了一搞,并把自己搞的过程记录下来.话不多说直接开干 环境说明 Centos7 Docker version 18.0 ...

  7. 西门子软件sinutrain-for-sinumerik-operate-v4.8安装报错的处理

       西门子软件sinutrain-for-sinumerik-operate-v4.8安装报错的处理 安装时报错提示: 原因: 可能缺少某些文件 处理: 安装 海康ivms-4200后,可直接安装西 ...

  8. (八)装配Bean(2)

    二.在Java类中进行显式的装配 显式配置有两种: 1. 一种是在java(本文讲解)   2. 另一种是xml配置文件(第一章有讲) 案例一: 使用java显式装配+@autowired自动装配的方 ...

  9. 【转载】SpringBoot yml 配置

    1. 在 spring boot 中,有两种配置文件,一种是application.properties,另一种是application.yml,两种都可以配置spring boot 项目中的一些变量 ...

  10. 路由器开源系统openwrt配置页面定制

    1. 新建虚拟机,百度文库有一篇<使用VMware安装OpenWrt>,地址:http://wenku.baidu.com/link?url=NkvaQpTf2dR8FpYn7JD9A7- ...