HTTP状态码(Status Codes)

服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)

状态码被分为五大类: 

    100-199 用于指定客户端应相应的某些动作。 
200-299 用于表示请求成功。 
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 
400-499 用于指出客户端的错误。 

500-599 用于支持服务器错误。 

            • 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
      • 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
    • 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
    • 204 NO CONTENT - [DELETE]:用户删除数据成功。
    • 300 (Multiple Choices/多重选择)
      300 (SC_MULTIPLE_CHOICES)表示被请求的文档可以在多个地方找到,并将在返回的文档中列出来。如果服务器有首选设置,首选项将会被列于定位响应头信息中。 
    • 301 (Moved Permanently)
      301 (SC_MOVED_PERMANENTLY)状态是指所请求的文档在别的地方;文档新的URL会在定位响应头信息中给出。浏览器会自动连接到新的URL。 
    • 302 (Found/找到)
    • 与301有些类似,只是定位头信息中所给的URL应被理解为临时交换地址而不是永久的。注意:在 HTTP 1.0中,消息是临时移动(Moved Temporarily)的而不是被找到,因此HttpServletResponse中的常量是SC_MOVED_TEMPORARILY不是我们以为的SC_FOUND。 
    • 303 (See Other/参见其他信息)
      这个状态码和 301、302 相似,只是如果最初的请求是 POST,那么新文档(在定位头信息中给出)药用 GET 找回。这个状态码是新加入 HTTP 1.1中的。 
    • 304 (Not Modified/为修正)
      当客户端有一个缓存的文档,通过提供一个 If-Modified-Since 头信息可指出客户端只希望文档在指定日期之后有所修改时才会重载此文档,用这种方式可以进行有条件的请求。304 (SC_NOT_MODIFIED)是指缓冲的版本已经被更新并且客户端应刷新文档。另外,服务器将返回请求的文档及状态码 200。servlet一般情况下不会直接设置这个状态码。它们会实现getLastModified方法并根据修正日期让默认服务方法处理有条件的请求。这个方法的例程已在2.8部分(An Example Using Servlet Initialization and Page Modification Dates/一个使用servlet初始化和页面修正日期的例子)给出。 
    • 305 (Use Proxy/使用代理)
    • 305 (SC_USE_PROXY)表示所请求的文档要通过定位头信息中的代理服务器获得。这个状态码是新加入 HTTP 1.1中的。 
    • 307 (Temporary Redirect/临时重定向)
      浏览器处理307状态的规则与302相同。307状态被加入到 HTTP 1.1中是由于许多浏览器在收到302响应时即使是原始消息为POST的情况下仍然执行了错误的转向。只有在收到303响应时才假定浏览器会在POST请求时重定向。添加这个新的状态码的目的很明确:在响应为303时按照GET和POST请求转向;而在307响应时则按照GET请求转向而不是POST请求。注意:由于某些原因在HttpServletResponse中还没有与这个状态对应的常量。该状态码是新加入HTTP 1.1中的。 
    • 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
    • 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
    • 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
    • 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
    • 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
    • 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
    • 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
    • 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

### 回答1: HTTP(超文本传输协议)是用于在Web服务器和Web浏览器之间传输数据的协议。HTTP状态码用于指示特定HTTP请求的处理结果,共有五种类型的HTTP状态码: 1. 信息性状态码(Informational Status Codes)- 100到199之间的状态码。例如,100表示请求已被接收,继续处理。 2. 成功状态码(Successful Status Codes)- 200到299之间的状态码。例如,200表示请求已成功,并返回所需的数据。 3. 重定向状态码(Redirection Status Codes)- 300到399之间的状态码。例如,301表示所请求的资源已被永久移动到新位置。 4. 客户端错误状态码(Client Error Status Codes)- 400到499之间的状态码。例如,404表示所请求的资源未找到。 5. 服务器错误状态码(Server Error Status Codes)- 500到599之间的状态码。例如,500表示服务器在处理请求时发生了错误。 希望这能够帮助您理解HTTP状态码的基本分类。 ### 回答2: HTTP状态码是用来表示HTTP请求的处理结果的标准化数字代码。根据RFC 2616规范,HTTP状态码可以分为5种类别: 1. 信息类(1xx):信息类状态码表示请求已经被接受,服务器正在处理,并会继续传输信息。常见的状态码包括: - 100 Continue:服务器已经接收到请求的首部,并要求接下来的请求使用相同的连接发送。 - 101 Switching Protocols:服务器已经理解了来自客户端的请求,并将通过upgrade首部指定的协议进行协议转换。 2. 成功类(2xx):成功类状态码表示请求已经被服务器成功接收、理解和处理。常见的状态码包括: - 200 OK:请求成功。 - 201 Created:请求成功并且服务器已经创建了新的资源。 - 204 No Content:服务器成功处理请求,但没有返回响应内容。 3. 重定向类(3xx):重定向类状态码表示需要进一步操作以完成请求。常见的状态码包含: - 301 Moved Permanently:被请求的资源已永久移动到新的URL。 - 302 Found:请求的资源临时被移动到新的URL。 - 304 Not Modified:自从上次请求后,请求的资源未发生修改,使用缓存的内容。 4. 客户端错误类(4xx):客户端错误类状态码表示客户端发出的请求有误或无法完成。常见状态码包括: - 400 Bad Request:请求参数有误或语法有误。 - 403 Forbidden:服务器拒绝请求。 - 404 Not Found:请求的资源不存在。 5. 服务器错误类(5xx):服务器错误类状态码表示服务器不能处理请求。常见的状态码包括: - 500 Internal Server Error:服务器内部错误。 - 502 Bad Gateway:作为代理或网关的服务器从上游服务器收到错误响应。 - 503 Service Unavailable:服务器暂时过载或正在维护,无法处理请求。 通过使用不同的HTTP状态码,可以更好地对请求进行处理和识别,使通信更加准确和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值