网页请求有多少种错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网页请求有多少种错误?相关的知识,希望对你有一定的参考价值。

101错误,401错误,403错误,404错误这样,一共有多少?分别是从什么到什么?

HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范。HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的。当我们没有指定端口访问时,浏览器会默认帮我们添加80端口。我们也可以自己指定访问端口如:http://www.ip138.com:80。 需要注意的是,现在大多数访问都使用了HTTPS协议,而HTTPS的默认端口为443,如果使用80端口访问HTTPS协议的服务器可能会被拒绝。

 

HTTP请求的方法:

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法

 

1、OPTIONS

返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性

2、HEAD

向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。

3、GET

向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url

4、POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form

5、PUT

向指定资源位置上传其最新内容

6、DELETE

请求服务器删除Request-URL所标识的资源

7、TRACE

回显服务器收到的请求,主要用于测试或诊断

8、CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

注意:

1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501(Not Implemented)。

2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。

HTTP工作原理

HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

 HTTP 请求/响应的步骤:

客户端连接到Web服务器->发送Http请求->服务器接受请求并返回HTTP响应->释放连接TCP连接->客户端浏览器解析html内容

1、客户端连接到Web服务器

一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.baidu.com

2、发送HTTP请求

通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

3、服务器接受请求并返回HTTP响应

Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

4、释放连接TCP连接

若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

5、客户端浏览器解析HTML内容

客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

HTTP请求消息Request

客户端发送一个HTTP请求到服务器的请求消息包括以下格式

请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。

请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本

Get请求例子,使用Charles抓取的request:

GET /562f25980001b1b106000338.jpg HTTP/1.1Host    img.mukewang.com
User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36Accept    image/webp,image/*,*/*;q=0.8Referer    http://www.imooc.com/Accept-Encoding    gzip, deflate, sdch
Accept-Language    zh-CN,zh;q=0.8

第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.

GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。

第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息

从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等

第三部分:空行,请求头部后面的空行是必须的

即使第四部分的请求数据为空,也必须有空行。

第四部分:请求数据也叫主体,可以添加任意的其他数据。

这个例子的请求数据为空。

POST请求例子,使用Charles抓取的request:

POST / HTTP1.1Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40Connection: Keep-Alive

name=Professional Ajax&publisher=Wiley

第一部分:请求行,第一行明了是post请求,以及http1.1版本。
第二部分:请求头部,第二行至第六行。
第三部分:空行,第七行的空行。
第四部分:请求数据,第八行。

HTTP请求消息Response

一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文

 

例子

HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8




第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)

第二部分:消息报头,用来说明客户端要使用的一些附加信息

第二行和第三行为消息报头,
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8

第三部分:空行,消息报头后面的空行是必须的

第四部分:响应正文,服务器返回给客户端的文本信息。

空行后面的html部分为响应正文。

请求返回状态码:

200 OK  当您的操作将在响应正文中返回数据时,出现此结果。

204 No Content 当您的操作成功,但不在响应正文中返回数据时,出现此结果。

304 Not Modified(重定向)  当测试实体自上次检索以来是否被修改时,出现此结果。

403 Forbidden   客户端错误

401 Unauthorized 客户端错误

413 Payload Too Large(客户端错误) 当请求长度过长时,出现此结果。

400 BadRequest(客户端错误) 当参数无效时,出现此结果。

404 Not Found(客户端错误) 当资源不存在时,出现此结果。

405 Method Not Allowed(客户端错误)由于方法和资源组合不正确而出现此错误。 例如,您不能对一个实体集合使用 DELETE 或 PATCH。

412 Precondition Failed  客户端错误

501 Not Implemented(服务器错误) 当未实施某个请求的操作时,出现此结果。

503 Service Unavailable(服务器错误) 当 Web API 服务不可用时,出现此结果。

GET与POST:

 “get”方法提交的数据会直接填充在请求报文的URL上,如“ https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1 ”   “?”问号划分域名和get提交的参数,A=B中的A是参数名,B是参数值,多个参数之间用&进行分割,如果参数值是中文,则会转换成诸如?加密16进制码。一般来说,浏览器处理的URL最大限度长度为1024B(不同浏览器不一样),所以GET方法提交参数长度有限制。

        “post”方法提交的数据会附在正文上,一般请求正文的长度是没有限制的,但表单中所能处理的长度一般为100k(不同协议不同浏览器不一样),而且需要考虑下层报文的传输效率,不推荐过长。

        所以GET方法可以用来传输一些可以公开的参数信息,解析也比较方便,如百度的搜索的关键词,而POST方法可以用来提交一个用户的敏感信息(如果不使用HTTPS加密,报文正文仍旧是明文,容易被人截获读取)

主要特点

1、无连接

无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

2、无状态

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

 3、简单快速

客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

4、灵活

HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

5、支持B/S及C/S模式

参考技术A

    网页常见错误代码列表,比较多哦。

1  网址协议不支持的协议。 

2  检测器内部错误。 

3  网址格式不正确。

5  无法连接到代理服务器。

6 无法连接到服务器或找不到域名。  

7  连接服务器失败。  

28  操作超时。可能原因:页面执行时间过长、服务器压力大。 

52  服务器未返回任何内容。  

100  Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。 

101  Switching Protocols 服务器将遵从客户的请求转换到另外一种协议  

200  OK 一切正常  

201  Created 服务器已经创建了文档,Location头给出了它的URL。 

202  Accepted 已经接受请求,但处理尚未完成。  

203  Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝。 

204   No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。  

205   Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。  

206   Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它。  

300   Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。 

301   Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。  

302   Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求http://host/~user(缺少了后面的斜杠),有的服务器返回301,有的则返回302。严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。 

303   See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取。  

304   Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。  

305   Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取。  

307   Temporary Redirect 和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。  

400   Bad Request 请求出现语法错误。 

401   Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。  

403   Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。  

404   Not Found 无法找到指定位置的资源。这也是一个常用的应答。  

405   Method Not Allowed 请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。  

406   Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容。 

407   Proxy Authentication Required 类似于401,表示客户必须先经过代理服务器的授权。  

408   Request Timeout 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。  

409   Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。

 410   Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。  

411   Length Required 服务器不能处理请求,除非客户发送一个Content-Length头。 

412   Precondition Failed 请求头中指定的一些前提条件失败。  

413   Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头。 

414   Request URI Too Long URI太长。  

416   Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头。 

500   Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求。 

501   Not Implemented 服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。  

502   Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。  

503   Service Unavailable 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。 

504   Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。 

505   HTTP Version Not Supported 服务器不支持请求中所指明的HTTP版本。  

10003  网址内容不是文本,无法执行文本检测  

10002 网址内容不知是什么类型,无法执行文本检测  

10000  网址内容未包含指定的文字  

20000  内容被修改  

30000  检测到木马、病毒 

追问

好厉害0.0

本回答被提问者采纳

为啥网页打开错误上面出现个 HTTP 400错误的请求? 急..

电脑还原几次了 都是这问题 咋会事 高手救救我啊! 有的网页也可以打开但是慢 .

HTTP 400 Bad Request 原因如下:

1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请

2、请求参数有误。

解决方案:

1、检查系统是否感染病毒。如果系统中已经或者曾经感染过文件型毒,那么系统文件就有可能受到破坏。

杀毒软件有可能把病毒杀干净,但被破坏的系统文件却无法还原,你可以试着用SFC(开始--运行,在其中输入command(98等系统)或cmd(2000以上系统)命令修复系统文件,输入SFC 在根据机子提示走。

2、释放内存。弄清你电脑内存多少,要不是多的话,还开的过大的应用程序(如Photoshop),那在玩游戏前就应该先重新启动一下,以免系统因内存不够造成运行不够造成运行错误。

3、修复 WMI 。

在运行中输入“services.msc“ 回车打开系统服务管理,找到并关闭“Windows management instrumentation“服务,删除 Windows\\system32\\wbem\\repository 目录下的所有文件(删除前要先备份哦),完成后重新启动该服务。 

4、以上方法还是不行的话就试试 删除不必要的插件。可以使用“360安全卫士”/“腾讯管家”。

扩展资料:

HTTP状态码含义:

1、401 Unauthorized

当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。

如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。

如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。参见RFC 2617。

2、402 Payment Required

该状态码是为了将来可能的需求而预留的。

3、403 Forbidden

服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。

如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个404响应,假如它不希望让客户端获得任何信息。

4、404 Not Found

请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。

假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。

404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。出现这个错误的最有可能的原因是服务器端没有这个页面。

参考资料:百度百科 HTTP状态码

参考技术A

首先,出现“HTTP 错误 400”是指,请求出错,由于语法格式有误,服务器无法理解此请求。

原因是:

1、这个错误是因为网站不能访问;

2、也可能是你的DNS设置错误。DNS可通过任务样右下角"我的连接"属性里面的TCP/IP--属性--DNS来查看和设置。具体数值需要根据你的网络的ISP(电信还是网通)以及地理位置(一般同省份相同)来确定。若是能够正常访问的电脑上PING得这几个网站的IP地址,用IP地址从你的网站上直接访问,就不需要DNS来进行解析了.。

具体解决办法:

1、检查系统是否感染病毒。如果系统中已经或者曾经感染过文件型毒,那么系统文件就有可能受到破坏。杀毒软件有可能把病毒杀干净,但被破坏的系统文件却无法还原,你可以试着用SFC(开始--运行,在其中输入command(98等系统)或cmd(2000以上系统)命令修复系统文件,输入SFC 在根据机子提示走。

2、释放内存。弄清你电脑内存多少,要不是多的话,还开的过大的应用程序(如Photoshop),那在玩游戏前就应该先重新启动一下,以免系统因内存不够造成运行不够造成运行错误。

3、修复 WMI 。在运行中输入“services.msc“ 回车打开系统服务管理,找到并关闭“Windows management instrumentation“服务,删除 Windows\\system32\\wbem\\repository 目录下的所有文件(删除前要先备份哦),完成后重新启动该服务。 

4、以上方法还是不行的话就试试 删除不必要的插件。可以使用“360安全卫士”/“腾讯管家”。

参考技术B

方法一:网页工具选项里有个Internet选项,在常规选项卡里点删除cookies,隐私级别调至最高  

 

方法二:删除

删除c\\windows\\system32\\wbem\\repository中的文件,有一个文件夹删不了,不用管它,然后重启。这种方法不能彻底解决,以后可能还会出现类似问题,出现之后按上述步骤仍可解决。

方法三:在开始\\运行下依次运行以下命令

regsvr32 actxprxy.dll

egsvr32 shdocvw.dll

如果不行继续运行下面的命令
regsvr32 mshtml.dll
regsvr32 urlmon.dll
regsvr32 msjava.dll(这个运行时候可能会出现提示说不存在模块,这样就需要下载一个dll模块,地址http://www.dll-files.com/dllindex/dll-files.shtml?msjava 是个英文网站,下载地址在下面,下载后查毒,解压到system32里)

参考技术C 错误意义:
HTTP 错误 400 :请求出错,由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。

这个错误是因为网站不能访问.原因可能是无法访问,也可能是你的DNS设置错误.
DNS可通过任务样右下角"我的连接"属性里面的TCP/IP--属性--DNS来查看和设置.具体数值需要根据你的网络的ISP(电信还是网通)以及地理位置(一般同省份相同)来确定,可以从网上查到.
另外,你可能在能够正常访问的电脑上PING得这几个网站的IP地址,用IP地址从你的网站上直接访问,就不需要DNS来进行解析了.

初步检测办法:
1.如果你用ADSL,从新拨号试试/

2.看看其他网站访问是否正常,如果都不能访问,看看你的qq能否使用,如果可以,可能是你电脑的host表被病毒破坏了,可以下载host表修复工具.

具体解决办法:
1:检查系统是否感染病毒.如果系统中已经或者曾经感染过文件型毒,那么系统文件就有可能受到破坏.杀毒软件有可能把病毒杀干净,但被破坏的系统文件却无法还原,你可以试着用SFC(开始--运行,在其中输入command(98等系统)或cmd(2000以上系统)命令修复系统文件.输入SFC 在根据机子提示走)
2:释放内存.也不知道你电脑内存多少.要不是多的话,还开的过大的应用程序(如Photoshop),那在玩游戏前就应该先重新启动一下,以免系统因内存不够造成运行不够造成运行错误.
3:修复 WMI 。在运行中输入“services.msc“ 回车打开系统服务管理,找到并关闭“Windows management instrumentation“服务,删除 Windows\system32\wbem\repository 目录下的所有文件(删除前要先备份哦),完成后重新启动该服务。 要还不行的话就试试 删除不必要的插件~~~~~~~~~~~~~~~我曾经因为系统中衩偷偷装了Yahoo助手而导致的系统故障,出于很多插件加入了防止删除的系统底层挂钩,所以常会与其他程序发生冲突,你要是遇到这种情况,我建议你用“360安全卫士”(我就用的360,放心绝对安全+免费)卸载。。
4.有关IE错误的问题,
出现这种问题应排除其他的原因如病毒和硬件的故障,
还有浏览器损坏或文件丢失,

其次主要是IE核心的某些DLL文件在注册表中的条目丢失或有错。

这类问题一般由于安装了某些软件引起的。特别是一些设计的不规范的软件,要解决应使用REGSYR 32命令,

在运行中分别输入 :
regsvr32 actxprxy.dll
regsvr32 shdocvw.dll
这样就重新注册了这两个dll文件,完成后重启电脑。如还有故障也可以把以下几个dll文件也重新注册一次,
regsvr32 mshtml.dll
regsvr32 urlmon.dll
regsvr32 msjava.dll
regsvr32 browseui.dll

参考资料:知道

本回答被提问者采纳
参考技术D 有可能是网站问题
如果所有的网站都是的 可以试试看菜单栏→工具→Internet选项→高级→重置
还有一种可能是你如果在在局域网内 那有可能是路由器设置错误 那就要网管来改改了

以上是关于网页请求有多少种错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥网页打开错误上面出现个 HTTP 400错误的请求? 急..

网页503错误

http错误215545

访问网址错误..

18.FastAPI错误处理

django debug关闭之后网页错误