HTTP报文详解

2023-05-16

HTTP报文详解

目录

  • 1、HTTP请求报文

  • 2、HTTP响应报文

  • 3、请求方法

  • 4、消息头

    • 4.1、请求消息头

    • 4.2、响应消息头

  • 5、状态码

    • 5.1、1XX消息

    • 5.2、2XX成功

    • 5.3、3XX重定向

    • 5.4、4XX客户端错误

    • 5.5、5XX服务器错误

  • 6、Content-Type

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。

1、HTTP请求报文

HTTP请求报文由3部分组成(请求行+请求头+请求体)

请求报文:

 

①是请求方法,GET和POST是最常见的HTTP方法,除此以外还有DELETE、HEAD、OPTIONS、PUT、TRACE方法。

②是请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。

③是协议名称及版本号。

④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。

⑤是报文体,它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html?param1=value1&param2=value2”的方式传递请求参数。

请求结构图:

 

2、HTTP响应报文

HTTP响应报文由3部分组成(响应行+响应头+响应体)

响应报文:

 

①报文协议及版本。

②状态码及状态描述。

③响应报文头,也是由多个属性组成。

④响应报文体,即返回来的数据。

3、请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。

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

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

 

 

 

4、消息头

 

 

HTTP消息头是指,在超文本传输协议(HTTP)的请求和响应消息中,协议头部分的那些组件。HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。

HTTP消息头是在客户端请求(Request)或服务器响应(Response)时传递的,位于请求或响应的第一行,HTTP消息体(请求或响应的内容)是其后传输。HTTP消息头以明文的字符串格式传送,是以冒号分隔的键值对,如:Accept-Charset:utf-8,每一个消息头最后以回车符(CR)和换行符(LF)结尾。HTTP消息头结束后,会用一个空白的字段来标识,这样就会出现两个连续的CR-LF。

 

4.1、请求消息头

Accept 能够接受的回应内容类型(Content-Types)。

示例:Accept: text/plain

 

Accept-Charset 能够接受的字符集。

示例:Accept-Charset: utf-8

 

Accept-Encoding 能够接受的编码方式列表。

示例:Accept-Encoding: gzip, deflate

 

Accept-Language 能够接受的回应内容的自然语言列表。

示例:Accept-Language: en-US

 

Accept-Datetime 能够接受的按照时间来表示的版本。

示例:Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT

 

Authorization 用于超文本传输协议的认证的认证信息。

示例:Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

 

Cache-Control 用来指定在这次的请求/响应链中的所有缓存机制,都必须遵守的指令。

示例:Cache-Control: no-cache      

 

Connection 该浏览器想要优先使用的连接类型。

示例:Connection: keep-alive Connection: Upgrade

 

Cookie 之前由服务器通过Set- Cookie发送的一个超文本传输协议Cookie。

示例:Cookie: $Version=1; Skin=new;

 

Content-Length 以八位字节数组(8位的字节)表示的请求体的长度。

示例:Content-Length: 348

 

Content-MD5 请求体的内容的二进制MD5散列值,以 Base64 编码的结果。

示例:Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==

 

Content-Type 请求体的多媒体类型(用于POST和PUT请求中)。

示例:Content-Type: application/x-www-form-urlencoded

 

Date 发送该消息的日期和时间。

示例:Date: Tue, 15 Nov 1994 08:12:31 GMT

 

Expect 表明客户端要求服务器做出特定的行为。

示例:Expect: 100-continue

 

From 发起此请求的用户的邮件地址。

示例:From: user@example.com

 

Host 服务器的域名(用于虚拟主机),以及服务器所监听的传输控制协议端口号。如果所请求的端口是对应的服务的标准端口,则端口号可被省略。

示例:Host: en.wikipedia.org:80 Host: en.wikipedia.org

 

If-Match 仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要作用时,用作像PUT这样的方法中,仅当从用户上次更新某个资源以来,该资源未被修改的情况下,才更新该资源。

示例:If-Match: "737060cd8c284d8af7ad3082f209582d"

 

If-Modified-Since 如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码。

示例:If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT

 

If-None-Match 允许在对应的内容未被修改的情况下返回304未修改(304 Not Modified)。

示例:If-None-Match: "737060cd8c284d8af7ad3082f209582d"      

 

If-Range 如果该实体未被修改过,则向我发送我所缺少的那一个或多个部分;否则发送整个新的实体。

示例:If-Range: "737060cd8c284d8af7ad3082f209582d"

 

If-Unmodified-Since 仅当该实体自某个特定时间已来未被修改的情况下,才发送回应。

示例:If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT

 

Max-Forwards 限制该消息可被代理及网关转发的次数。

示例:Max-Forwards: 10

 

Origin 发起一个针对跨来源资源共享的请求(要求服务器在回应中加入一个”访问控制-允许来源”(”Access-Control-Allow-Origin”)字段)。

示例:Origin: http://www.example-social-network.com

 

Pragma 与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生多种效果。

示例:Pragma: no-cache

 

Proxy-Authorization 用来向代理进行认证的认证信息。

示例:Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

 

Range 仅请求某个实体的一部分。字节偏移以0开始。

示例:Range: bytes=500-999

 

Referer 表示浏览器所访问的前一个页面,正是那个页面上的某个链接将浏览器带到了当前所请求的这个页面。

示例:Referer: http://en.wikipedia.org/wiki/Main_Page      

 

TE 浏览器预期接受的传输编码方式:可使用回应协议头Transfer-Encoding字段中的值;另外还可用"trailers"(与"分块"传输方式相关)这个值来表明浏览器希望在最后一个尺寸为0的块之后还接收到一些额外的字段。

示例:TE: trailers, deflate

 

User-Agent 浏览器的浏览器身份标识字符串。

示例:User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0

 

Upgrade 要求服务器升级到另一个协议。

示例:Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

 

Via 向服务器告知,这个请求是由哪些代理发出的。

示例:Via: 1.0 fred, 1.1 example.com (Apache/1.1)

 

Warning 一个一般性的警告,告知在实体内容体中可能存在错误。

示例:Warning: 199 Miscellaneous warning

 

4.2、响应消息头

Access-Control-Allow-Origin 指定哪些网站可参与到跨来源资源共享过程中。

示例:Access-Control-Allow-Origin: *

 

Accept-Patch 指定服务器支持的文件格式类型。

示例:Accept-Patch: text/example;charset=utf-8

 

Accept-Ranges 这个服务器支持哪些种类的部分内容范围。

示例:Accept-Ranges: bytes

 

Age 这个对象在代理缓存中存在的时间,以秒为单位。

示例:Age: 12

 

Allow 对于特定资源有效的动作。针对HTTP/405这一错误代码而使用。

示例:Allow: GET, HEAD

 

Cache-Control 向从服务器直到客户端在内的所有缓存机制告知,它们是否可以缓存这个对象。其单位为秒。

示例:Cache-Control: max-age=3600

 

Connection 针对该连接所预期的选项。

示例:Connection: close

 

Content-Disposition 一个可以让客户端下载文件并建议文件名的头部。文件名需要用双引号包裹。

示例:Content-Disposition: attachment; filename="fname.ext"

 

Content-Encoding 在数据上使用的编码类型。

示例:Content-Encoding: gzip

 

Content-Language 内容所使用的语言。

示例:Content-Language: da

 

Content-Length 回应消息体的长度,以字节(8位为一字节)为单位。

示例:Content-Length: 348

 

Content-Location 所返回的数据的一个候选位置。

示例:Content-Location: /index.htm

 

Content-MD5 回应内容的二进制MD5散列,以Base64方式编码。

示例:Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==

 

Content-Range 这条部分消息是属于某条完整消息的哪个部分。

示例:Content-Range: bytes 21010-47021/47022

 

Content-Type 当前内容的MIME类型。

示例:Content-Type: text/html; charset=utf-8

 

Date 此条消息被发送时的日期和时间。

示例:Date: Tue, 15 Nov 1994 08:12:31 GMT      

 

ETag 对于某个资源的某个特定版本的一个标识符,通常是一个消息散列。

示例:ETag: "737060cd8c284d8af7ad3082f209582d"

 

Expires 指定一个日期/时间,超过该时间则认为此回应已经过期。

示例:Expires: Thu, 01 Dec 1994 16:00:00 GMT

 

Last-Modified 所请求的对象的最后修改日期。

示例:Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT      

 

Link 用来表达与另一个资源之间的类型关系,此处所说的类型关系是在RFC 5988中定义的。

示例:Link:; rel="alternate"

 

Location 用来进行重定向,或者在创建了某个新资源时使用。

示例:Location: http://www.w3.org/pub/WWW/People.html

 

P3P 用于支持设置P3P策略,标准格式为“P3P:CP="your_compact_policy"”。然而P3P规范并不成功,大部分现代浏览器没有完整实现该功能,而大量网站也将该值设为假值,从而足以用来欺骗浏览器的P3P插件功能并授权给第三方Cookies。

示例:P3P: 

CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."

 

Pragma 与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生多种效果。

示例:Pragma: no-cache

 

Proxy-Authenticate 要求在访问代理时提供身份认证信息。

示例:Proxy-Authenticate: Basic

 

Public-Key-Pins 用于缓解中间人攻击,声明网站认证使用的传输层安全协议证书的散列值。示例:

Public-Key-Pins:max-age=2592000;pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=";

 

Refresh 用于设定可定时的重定向跳转。

示例设定了5秒后跳转至http://www.w3.org/pub/WWW/People.html。

示例:Refresh: 5; url=http://www.w3.org/pub/WWW/People.html

 

Retry-After 如果某个实体临时不可用,则此协议头用来告知客户端日后重试。其值可以是一个特定的时间段(以秒为单位)或一个超文本传输协议日期。

示例:

Example 1: Retry-After: 120

Example 2: Retry-After: Fri, 07 Nov 2014 23:59:59 GMT

 

Server 服务器的名字。

示例:Server: Apache/2.4.1 (Unix)

 

Set-Cookie  HTTP cookie。

示例:Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1

 

Status 通用网关接口协议头字段,用来说明当前这个超文本传输协议回应的状态。普通的超文本传输协议回应会使用单独的“状态行”("Status-Line")作为替代,这一点是在RFC 7230中定义的。

示例:Status: 200 OK      

 

Strict-Transport-Security  HTTP严格传输安全这一头部告知客户端缓存这一强制HTTPS策略的时间,以及这一策略是否适用于其子域名。

示例:Strict-Transport-Security: max-age=16070400; includeSubDomains

 

Trailer 这个头部数值指示了在这一系列头部信息由分块传输编码。

示例:Trailer: Max-Forwards

 

Transfer-Encoding 用来将实体安全地传输给用户的编码形式。当前定义的方法包括:分块(chunked)、compress、deflate、gzip和identity。

示例:Transfer-Encoding: chunked

 

Upgrade 要求客户端升级到另一个协议。

示例:Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

 

Vary 告知下游的代理服务器,应当如何对未来的请求协议头进行匹配,以决定是否可使用已缓存的回应内容而不是重新从原始服务器请求新的内容。

示例:Vary: *

 

Via 告知代理服务器的客户端,当前回应是通过什么途径发送的。

示例:Via: 1.0 fred, 1.1 example.com (Apache/1.1)

 

Warning 一般性的警告,告知在实体内容体中可能存在错误。

示例:Warning: 199 Miscellaneous warning

 

WWW-Authenticate 表明在请求获取这个实体时应当使用的认证模式。

示例:WWW-Authenticate: Basic

 

X-Frame-Options  deny:该页面不允许在 frame 中展示,即使是同域名内。sameorigin:该页面允许同域名内在 frame 中展示。allow-from uri:该页面允许在指定uri的 frame 中展示。allowall:允许任意位置的frame显示,非标准值。

示例:X-Frame-Options: deny

 

 

5、状态码

 

 

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

HTTP状态码的英文为HTTP Status Code

常见的HTTP状态码:

200 - 请求成功

301 - 资源(网页等)被永久转移到其它URL

404 - 请求的资源(网页等)不存在

500 - 内部服务器错误

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

 

 

5.1、1XX消息

100 Continue

表示目前为止一切正常,客户端应该继续请求,如果已完成请求则忽略。

 

101 Switching Protocols

表示服务器应客户端升级协议的请求(Upgrade请求头)正在进行协议切换。

 

5.2、2XX成功

200 OK

表明请求已经成功。默认情况下状态码为200的响应可以被缓存。

201 Created

请求已经被实现,而且有一个新的资源已经依据请求的需要而创建,且其URI已经随Location头信息返回。假如需要的资源无法及时创建的话,应当返回'202 Accepted'。

202 Accepted

服务器已接受请求,但尚未处理。最终该请求可能会也可能不会被执行,并且可能在处理发生时被禁止。

203 Non-Authoritative Information

服务器是一个转换代理服务器(transforming proxy,例如网络加速器),以200 OK状态码为起源,但回应了原始响应的修改版本。

204 No Content

服务器成功处理了请求,没有返回任何内容。

205 Reset Content

服务器成功处理了请求,但没有返回任何内容。与204响应不同,此响应要求请求者重置文档视图。

206 Partial Content

服务器已经成功处理了部分GET请求。类似于迅雷这类的HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。

5.3、3XX重定向

300 Multiple Choices

表示重定向的响应状态码,表示该请求拥有多种可能的响应。用户代理或者用户自身应该从中选择一个。由于没有如何进行选择的标准方法,这个状态码极少使用。

301 Moved Permanently

永久重定向,说明请求的资源已经被移动到了由Location头部指定的URL上,是固定的不会再改变。搜索引擎会根据该响应修正。

302 Found

请求的资源被暂时的移动到了由Location头部指定的URL上。浏览器会重定向到这个URL, 但是搜索引擎不会对该资源的链接进行更新。

303 See Other

通常作为PUT或POST操作的返回结果,它表示重定向链接指向的不是新上传的资源,而是另外一个页面,比如消息确认页面或上传进度页面。而请求重定向页面的方法要总是使用 GET。

304 Not Modified

未改变说明无需再次传输请求的内容,也就是说可以使用缓存的内容。这通常是在一些安全的方法(safe),例如GET或HEAD或在请求中附带了头部信息:If-None-Match或If-Modified-Since。

305 Use Proxy

被请求的资源必须通过指定的代理才能被访问。Location域中将给出指定的代理所在的URI信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。只有原始服务器才能创建305响应。

307 Temporary Redirect

在这种情况下,请求应该与另一个URI重复,但后续的请求应仍使用原始的URI。与302相反,当重新发出原始请求时,不允许更改请求方法。例如,应该使用另一个POST请求来重复POST请求。

308 Permanent Redirect

请求和所有将来的请求应该使用另一个URI重复。307和308重复302和301的行为,但不允许HTTP方法更改。例如,将表单提交给永久重定向的资源可能会顺利进行。

5.4、4XX客户端错误

400 Bad Request

由于明显的客户端错误(例如,格式错误的请求语法,无效的请求消息或欺骗性路由请求),服务器不能或不会处理该请求。

401 Unauthorized

指的是由于缺乏目标资源要求的身份验证凭证,发送的请求未得到满足。

402 Payment Required

该状态码是为了将来可能的需求而预留的。该状态码最初的意图可能被用作某种形式的数字现金或在线支付方案的一部分,但几乎没有哪家服务商使用,而且这个状态码通常不被使用。

403 Forbidden

指的是服务器端有能力处理该请求,但是拒绝授权访问。

404 Not Found

指的是服务器端无法找到所请求的资源。返回该响应的链接通常称为坏链(broken link)或死链(dead link),它们会导向链接出错处理页面。

405 Method Not Allowed

表明服务器禁止了使用当前HTTP方法的请求。需要注意的是,GET与HEAD两个方法不得被禁止,当然也不得返回状态码405。

406 Not Acceptable

指代服务器端无法提供与Accept-Charset以及Accept-Language消息头指定的值相匹配的响应。

407 Proxy Authentication Required

指的是由于缺乏位于浏览器与可以访问所请求资源的服务器之间的代理服务器(proxy server)要求的身份验证凭证,发送的请求尚未得到满足。

408 Request Timeout

请求超时。根据HTTP规范,客户端没有在服务器预备等待的时间内完成一个请求的发送,客户端可以随时再次提交这一请求而无需进行任何更改。

409 Conflict

表示因为请求存在冲突无法处理该请求,例如多个同步更新之间的编辑冲突。

410 Gone

说明请求的内容在服务器上不存在,同时是永久性的丢失。如果不清楚是否为永久或临时的丢失,应该使用404。

411 Length Required

服务器拒绝在没有定义Content-Length头的情况下接受请求。在添加了表明请求消息体长度的有效Content-Length头之后,客户端可以再次提交该请求。

412 Precondition Failed

服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。这个状态码允许客户端在获取资源时在请求的元信息(请求头字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上。

413 Request Entity Too Large

表示请求主体的大小超过了服务器规定的限度,服务器可以选择关闭连接或者返回  Retry-After首部字段。

414 Request-URI Too Long

表示客户端所请求的URI超过了服务器允许的范围。

415 Unsupported Media Type

表示服务器由于不支持其有效载荷的格式,从而拒绝接受客户端的请求。

416 Requested Range Not Satisfiable

客户端已经要求文件的一部分(Byte serving),但服务器不能提供该部分。例如,如果客户端要求文件的一部分超出文件尾端。

417 Expectation Failed

在请求头Expect中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服显的证据证明在当前路由的下一个节点上,Expect的内容无法被满足。

5.5、5XX服务器错误

500 Internal Server Error

通用错误消息,服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。没有给出具体错误信息。

501 Not Implemented

服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。

502 Bad Gateway

作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

503 Service Unavailable

表示服务器尚未处于可以接受请求的状态。

504 Gateway Timeout

表示扮演网关或者代理的服务器无法在规定的时间内获得想要的响应。

505 HTTP Version Not Supported

表示服务器不支持请求所使用的HTTP版本。

6、Content-Type

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。

Content-Type对照表:

 

 

 

 

 

 

 

 

 

如果您觉得文章还不错,请 点赞、分享、在看、收藏 一下,因为这将是我持续输出更多优质文章的最强动力!

在这里推荐一个我自己创建的软件测试交流群,QQ:642830685,群中会不定期的分享软件测试资源,测试面试题以及测试行业资讯,大家可以在群中积极交流技术,还有大佬为你答疑解惑。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP报文详解 的相关文章

  • 尝试将过滤器添加到 Grizzly+Jersey 应用程序时出现问题

    我有这个服务器初始化类 package magic app main import org glassfish grizzly http server HttpServer import org glassfish jersey grizz
  • 通过 HTTPS 包含 Twitter Widgets.js

    当我们包含以下内容时 我在我们网站上的 HTTPS 服务页面上的混合内容方面遇到了一个小问题http platform twitter com widgets js http platform twitter com widgets js
  • 为什么 HttpClient 使套接字保持打开状态?

    在创建 使用和处置多个 HttpClient 时 我注意到有套接字处于 TIME WAIT 状态 例如 运行以下命令后 using System Net Http namespace HttpClientTest public class
  • HTTP 查询字符串和 []

    PHP 使用 在查询参数名称中 以确保多次出现的参数都出现在 GET超全局变量 否则只出现最后一次出现的情况 还有其他软件可以做到这一点吗 但从RFC 3986 https www rfc editor org rfc rfc3986 以及
  • 内容长度标头与分块编码

    我正在尝试权衡设置的利弊Content LengthHTTP 标头与使用分块编码从我的服务器返回 可能 大文件的比较 使用持久连接需要其中之一来符合 HTTP 1 1 规范 我看到了的优点Content Length标头是 下载对话框可以显
  • Express.js在控制器中获取http方法

    我正在构建一个注册表单 本地护照作为身份验证 表单作为表单助手 因为注册只知道 GET 和 POST 我想在一个函数中完成整个处理 换句话说 我正在寻找类似的东西 exports register function req res if r
  • 从开放的 HTTP 流中读取数据

    我正在尝试使用 NET WebRequest WebResponse 类来访问 Twitter 流 API 此处 http stream twitter com spritzer json 我需要能够打开连接并从打开的连接中增量读取数据 目
  • 减少1000张图片的HTTP请求?

    我知道这个问题可能听起来有点疯狂 但我想也许有人会想出一个聪明的主意 假设您在一个 HTML 页面上有 1000 个缩略图 图像大小约为5 10 kb 有没有办法在单个请求中加载所有图像 以某种方式将所有图像压缩到一个文件中 或者您对该主题
  • 如何测试“If-Modified-Since”HTTP 标头支持

    使用 PHP 如何准确测试远程网站supports If Modified Since HTTP 标头 据我所知 如果您获取的远程文件自标头请求中指定的日期以来已被修改 它应该返回 200 OK 状态 如果尚未修改 则应返回 304 Not
  • 除了 GET 和 POST 之外,如何从浏览器向 RESTful 应用程序发送任何内容?

    我没有得到 RESTful 的东西 是的 我知道如何从浏览器向我的应用程序发送 GET 请求 这是通过 URL 链接 a href user someone 并且还可以通过form方法发送POST请求 a
  • 在 iOS 中,http 204 响应返回空白页面,有办法阻止这种情况吗?

    以前可能有人问过这个问题 但我似乎找不到解决方案 所以如果是这种情况 我深表歉意 我正在开发一个使用express的简单节点应用程序 其中一个帖子路由返回 http 204 并发送它 下面是我的代码 router post id funct
  • .net core 2.0代理请求总是导致http 407(需要代理身份验证)

    我正在尝试通过 net core 2 0 Web 应用程序中的 WebProxy 发出 HTTP 请求 我得到的代码在 net框架中运行良好 所以我知道 相信 这不是环境问题 我也尝试使用两者来发出请求HttpWebRequest and
  • iOS 上的多个 HTTP 请求与单个 TCP 连接

    我正在开发一个 iPhone 应用程序 它使用我控制的基于 Web 的 API 连接到持续打开的 TCP 端口并通过 TCP API 发出请求 或者为我想要获取的所有数据发出新的 HTTP 请求 会更快或更高效吗 我认为差异可以忽略不计 但
  • 在读取正文之前拒绝 HTTP 请求

    我正在开发一个网站 用户需要上传一些非常大的文件 该网站是用 PHP 编写的 在某些情况下 我想根据标头拒绝文件 理想情况下 我想在收到标头后立即拒绝请求 而不读取正文 如果标头足以表明该文件应被拒绝 则没有理由读取 200M 的文件 此外
  • 诸如用于测试 HTTP 请求的虚拟 REST 服务器之类的东西? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在四处寻找 但找不到任何这样的网站 我想知道是否有一些虚拟服务器可以响应测试 GET 请求并返回
  • 404 标头 - HTTP 1.0 还是 1.1?

    为什么我能找到的几乎每个例子 包括这个问题 https stackoverflow com questions 437256 sending a 404 error in php大约一年前 说 404 标头应该是HTTP 1 0 404 N
  • 如何转义角度 HttpParams?

    在 Angular 服务中 我使用 HttpParams 将字符串发送到服务 get phone string Observable
  • Django HTTPS 和 HTTP 会话

    我使用 Django 1 1 1 和 ssl 重定向中间件 通过 HTTPS 创建的会话数据 身份验证等 在站点的 HTTP 部分中不可用 无需将整个站点设置为 HTTPS 即可使其可用的最佳方法是什么 这是设计使然 您无法轻易更改 当通过
  • 使用 Unity 在 C# 中发送 http 请求

    如何使用 Unity 在 C 中发送 HTTP GET 和 POST 请求 我想要的是 在post请求中发送json数据 我使用Unity序列化器 所以不需要 新的 我只想在发布数据中传递一个字符串并且能够 将 ContentType 设置
  • 最适合“正在进行的作业”的 HTTP 状态代码

    向客户端提供的最合适的 HTTP 状态代码是什么 表示 您的请求很好 但仍在进行中 请稍后在完全相同的位置回来查看 例如 假设客户端提交初始请求以启动繁重的查询 服务器立即返回一个 URL 客户端可以定期轮询该 URL 以获取结果 如果客户

随机推荐

  • 优秀!他历时三个月终于拿到阿里offer,在这里分享一下阿里的社招面经!

    前言 这也是我第二次进入三面了 xff0c 也不知道这次能不能进呢 xff1f 球球阿里爸爸了 xff0c 许愿一个 hr 面可以吗 xff1f wwwww 本人双非本科大三 xff0c 基础不强 xff0c 有一个简单的秒杀项目 xff0
  • wireshark-----过滤使用方法

    1 ip过滤 ip addr 61 61 10 239 4 160
  • MySQL数据库安装步骤及报错1251解决方法

    MySQL数据库安装 MySQL是一种关系数据库管理系统 xff0c 所使用的 SQL 语言是用于访问数据库的最常用的标准化语言 xff0c 其特点为体积小 速度快 总体拥有成本低 xff0c 尤其是开放源码这一特点 xff0c 在 Web
  • Docker 安装问题

    Docker 安装问题 出现了Failed to start docker service Unit docker service not found 这个图在图上的链接处拿的 xff0c 我自己之前出现的错误图找不到了 这个错误 xff0
  • vscode配置ros开发环境

    前言 xff1a 其实有两种方法来配置vscode里的ros环境 xff0c 第一种就是先通过终端创建工作空间 xff0c 并编译后然后选择vscode打开catkin ws xff0c 然后在vscode中配置ros的编译环境 xff1b
  • 判断IP地址是否在同一个网段

    一 什么是子网掩码 xff1f 在了解ip地址的网段之前 xff0c 我们先来了解子网掩码 xff0c 很多对网络了解不深的朋友都对子网掩码有些迷惑 xff0c 不了解它是用来干什么的 xff1f 子网掩码不能单独存在 xff0c 它必须结
  • 理解MySQL七种连接

    如上图是MySQL的七种连接 由于MySQ对于外连接支持SQL99语法 xff0c 我们就以JOIN ON举例 表t dept 表t emp 1 内连接 xff1a A表 xff0c B表交叉的部分 SELECT FROM t dept d
  • IP地址的分类和规划

    每日分享 xff1a 你拼命奔跑的样子 xff0c 终究会在风中留下痕迹 xff01 文章目录 一 IP地址的格式二 私有IP地址三 IP地址分类 xff1a 四 子网掩码五 IP地址的规划 一 IP地址的格式 1 主机唯一的标识 xff0
  • QT5+TCP/IP多线程传输图片

    先上实现结果 一 概述 QT中设计TCP IP通信主要使用QTCPServer和QTCPSocket两个类 xff0c 功能分为服务器端和客户端 xff0c 服务器端负责接收图片 xff0c 客户端发送图片 多线程设计主要有两种方法 xff
  • ubuntu建立新用户

    1 新建testuser用户 sudo adduser testuser 2 设置root密码 sudo passwd root 3 更改sudoers编辑权限 sudo chmod u 43 w etc sudoers 4 给testus
  • Error: Flash Download failed - “Cortex-M3“错误解决办法

    在使用STM32F103的时候 xff0c 使用DAP仿真器下载程序 xff0c 出现下载不了的情况 xff0c 错误信息如下 xff1a 输出框里打印信息如下 xff1a No Algorithm found for 08000000H
  • 浏览器自定义滚动条样式

    当一段文本过长 xff0c 使用overflow auto属性后 xff0c 这段文本所在区域将会出现滚动条 有时候 xff0c 我们需要自定义浏览器的滚动条样式 xff0c 可以使用css3的scrollbar thumb属性来实现 首先
  • linux rpm安装讲解

    1 安装rpm安装包 rpm ivh rpm 2 删除rpm安装包 rpm evv rpm 注意 xff1a 使用 e不能完全删除
  • Linux多进程/线程编程之【fork()和exec()】

    目录 一 fork系统调用创建子进程 1 1 为什么要创建子进程 1 2 fork系统调用的内部原理 1 3 关于子进程 1 4 线程和fork 二 exec族函数及实战 2 1 为什么需要exec族函数 2 2 exec族的6个函数介绍
  • 基于STM32的USART、UART串口命令调制和解析(加密与解密)

    基于STM32的USART UART串口命令调制和解析 xff08 加密与解密 xff09 采用芯片为STM32F407ZG 调制后的命令采用USART1往外发送 发送至USART2 而后USART2接收命令后 进行解析 把命令中有用的部分
  • 【STM32笔记】晶振及旁路电容设计避坑(低速外部晶振LSE无法起振的可能原因)

    STM32笔记 晶振及旁路电容设计避坑 xff08 低功耗低速外部晶振LSE无法起振的可能原因 xff09 晶振无法起振 无非就是旁路电容设计的有问题 一般旁路电容选10pF 12pF 20pF等等 都没啥问题 尤其是高速晶振 基本不会出问
  • ROS-CAN通信解析程序分析(ROS中进行CAN通信)

    CANALYST II的linux版本通信解析程序 我们解析程序的先后顺便为 xff1a open xff0c 打开can卡 xff1b initcan xff0c 对can卡进行初始化 xff1b start xff0c 启动can通道
  • ARM架构服务器安装docker

    我的服务器信息为 Linux ecs 1bc7 0001 4 19 90 17 5 ky10 aarch64 1 SMP Fri Aug 7 13 35 33 CST 2020 aarch64 aarch64 aarch64 GNU Lin
  • 深度学习-虚拟机当服务器的安装环境

    下载 Anaconda 清华大学开源软件镜像站 服务器端 1 Anaconda安装 将下载好的文件放在系统文件夹下 xff0c 然后输入bash Anaconda3 5 3 1 Linux x86 64 sh进行安装 注意 xff1a 对应
  • HTTP报文详解

    HTTP报文详解 目录 1 HTTP请求报文 2 HTTP响应报文 3 请求方法 4 消息头 4 1 请求消息头 4 2 响应消息头 5 状态码 5 1 1XX消息 5 2 2XX成功 5 3 3XX重定向 5 4 4XX客户端错误 5 5