HTTP介绍及状态码罗列

HTTP教程

以下知识点提取于菜鸟教程,主要用于web开发时方便查询状态码

HTTP是一种网络传输协议,是一个基于TCP/IP传输数据(HTML文件、图片、文本)的无状态通信协议。

HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。HTTP默认端口号为80。

Web服务器有:Apache服务器,IIS服务器等。

网络数据传输一般是bytes形式。

一、HTTP消息结构

  1. 一个HTTP请求包括:请求行、请求头部、空行、请求数据四部分。
    kPFexK.png

  2. 一个HTTP响应包括:状态行、消息报头、空行和响应正文四部分。
    kPFnKO.png

了解这两个常用的消息结构,可以

  • 模拟请求(手动模拟构造符合该格式的字符串)
  • 获取有效信息(正则匹配截取有效字符)

二、HTTP响应头信息

常用的是GET,POST。

序号方法描述
1GET请求指定的页面信息,并返回实体主体。
2HEAD类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。
3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和已有资源的修改。

三、HTTP状态码

常用的状态码:

  • 400 客户端请求有语法错误。
  • 403 服务器收到请求,但是拒绝提供服务。
  • 404 请求资源不存在即服务器上没有部署,或输入的ip,url 有误。
  • 500 服务器处理请求的代码部分有错。
  • 503 服务器当前无法处理请求,一般是超载或停机维护。

HTTP状态码分类 :

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

具体分类如下:

状态码中文描述
100继续。客户端应继续其请求
101切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
-------------------------------------------------------------------------------------------------------------------------------------------
200请求成功。一般用于GET与POST请求
201已创建。成功请求并创建了新的资源
202已接受。已经接受请求,但未处理完成
203非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206部分内容。服务器成功处理了部分GET请求
-------------------------------------------------------------------------------------------------------------------------------------------
300多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303查看其它地址。与301类似。使用GET和POST请求查看
304未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305使用代理。所请求的资源必须通过代理访问
306已经被废弃的HTTP状态码
307临时重定向。与302类似。使用GET请求重定向
-------------------------------------------------------------------------------------------------------------------------------------------
400客户端请求的语法错误,服务器无法理解
401请求要求用户的身份认证
402保留,将来使用
403服务器理解请求客户端的请求,但是拒绝执行此请求
404服务器无法根据客户端的请求找到资源(网页)。可能是网址出错,也可能是服务器没有部署
405客户端请求中的方法被禁止
406服务器无法根据客户端请求的内容特性完成请求
407请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408服务器等待客户端发送的请求时间过长,超时
409服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突
410客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411服务器无法处理客户端发送的不带Content-Length的请求信息
412客户端请求信息的先决条件错误
413由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414请求的URI过长(URI通常为网址),服务器无法处理
415服务器无法处理请求附带的媒体格式
416客户端请求的范围无效
417服务器无法满足Expect的请求头信息
-------------------------------------------------------------------------------------------------------------------------------------------
500服务器内部错误,无法完成请求
501服务器不支持请求的功能,无法完成请求
502作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504充当网关或代理的服务器,未及时从远端服务器获取请求
505服务器不支持请求的HTTP协议的版本,无法完成处理
HttpStatus类是Spring框架定义的一个枚举类,它封装了HTTP响应状态码及其对应的原因短语。下面是HttpStatus类一些常见的状态: - 1xx(信息类):表示接收的请求正在处理。 - 100 CONTINUE:继续请求,一般在发送POST请求时,已经发送了HTTP header之后服务端将返回此信息,表示确认,之后发送具体参数信息。 - 101 SWITCHING_PROTOCOLS:切换协议,表示正在采用的协议将被更改。 - 2xx(成功):表示请求已经被成功接收、理解、接受。 - 200 OK:请求成功。 - 201 CREATED:已创建。成功请求并创建了新的资源。 - 204 NO_CONTENT:无内容。服务器成功处理,但未返回内容。一般用于删除操作。 - 3xx(重定向):表示需要客户端进一步操作才能完成请求。 - 301 MOVED_PERMANENTLY:永久移动。请求的资源已被永久移动到新URI,返回信息会包含新的URI。 - 302 FOUND:临时移动。请求的资源已被临时移动到新URI,返回信息会包含新的URI。 - 304 NOT_MODIFIED:未修改。请求的资源未修改,可以使用缓存版本。 - 4xx(客户端错误):表示客户端提交的请求有错误。 - 400 BAD_REQUEST:请求错误。服务器不理解请求的语法。 - 401 UNAUTHORIZED:未授权。请求要求身份验证,验证失败。 - 403 FORBIDDEN:禁止访问。服务器拒绝请求。 - 404 NOT_FOUND:未找到。服务器找不到请求的资源。 - 5xx(服务器错误):表示服务器在处理请求的过程发生了错误。 - 500 INTERNAL_SERVER_ERROR:内部服务器错误。请求未完成。服务器遇到错误,无法完成请求。 - 502 BAD_GATEWAY:错误的网关。服务器作为网关或代理,从上游服务器收到无效响应。 - 503 SERVICE_UNAVAILABLE:服务不可用。服务器当前无法处理请求或请求过载。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值