http请求头和响应头

2023-05-16

文章目录

      • 参考HTTP
      • 通用标头
        • Cache-Control
        • Connection
        • Date
        • Pragma
        • Trailer
        • Transfer-Encoding
        • Upgrade
        • Via
        • Warning
      • 请求头
        • Accept
        • Accept-Ranges
        • Accept-Encoding
        • Accept-Language
        • Accept-Charset
        • Expect
        • From
        • If-Match
        • If-None-Match
        • If-Modified-Since
        • If-Range
        • If-Unmodified-Since
        • Proxy-Authorization
        • Range
        • TE
        • Host
        • Referer
        • Origin
        • User-Agent
        • Authorization
        • Cookie
      • 响应标头
        • Accept-Ranges
        • Age
        • Expires
        • ETag
        • location
        • Proxy-Authenticate
        • WWW-Authenticate
        • Retry-After
        • Server
        • Vary
        • Access-Control-Allow-Origin
      • 实体标头
        • Allow
        • MIME type
        • Content-Dispostion
        • content-type
        • Content-Encoding
        • Content-Language
        • Content-Length
        • Content-Range
        • Content-Location
        • Content-MD5
        • Last-Modified

参考HTTP

标头的具体使用 [HTTP](具体参考HTTP有详细介绍

通用标头

请求和响应

Cache-Control

指令格式具有以下有效规则:

  • 不区分大小写,但建议使用小写。
  • 多个指令以逗号分隔。
  • 具有可选参数,可以用令牌或者带引号的字符串语法。

缓存请求指令

客户端可以在HTTP请求中使用的标准 Cache-Control 指令。

Cache-Control: max-age=<seconds>
Cache-Control: max-stale[=<seconds>]
Cache-Control: min-fresh=<seconds>
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: only-if-cached

缓存响应指令

服务器可以在响应中使用的标准 Cache-Control 指令。

Cache-control: must-revalidate
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: public
Cache-control: private
Cache-control: proxy-revalidate
Cache-Control: max-age=<seconds>
Cache-control: s-maxage=<seconds>

扩展Cache-Control指令

拓展缓存指令不是核心HTTP缓存标准文档的一部分,使用前请注意检查兼容性!

Cache-control: immutable
Cache-control: stale-while-revalidate=<seconds>
Cache-control: stale-if-error=<seconds>
Cache-Control:no-cache
Cache-Control:max-age=60

可缓存性

  • public

    表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存,即使是通常不可缓存的内容
    (例如:1.该响应没有max-age指令或Expires消息头;2. 该响应对应的请求方法是 POST )

  • private

    表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)。私有缓存可以缓存响应内容,比如:对应用户的本地浏览器。

  • no-cache

    在发布缓存副本之前,强制要求缓存把请求提交给原始服务器进行验证(协商缓存验证)

  • no-store

    缓存不应存储有关客户端请求或服务器响应的任何内容,即不使用任何缓存

到期

  • max-age=<seconds>

    设置缓存存储的最大周期,超过这个时间缓存被认为过期(单位秒)。与Expires相反,时间是相对于请求的时间。

  • s-maxage=<seconds>

    覆盖max-age或者Expires头,但是仅适用于共享缓存(比如各个代理),私有缓存会忽略它。

  • max-stale[=<seconds>]

    表明客户端愿意接收一个已经过期的资源。可以设置一个可选的秒数,表示响应不能已经过时超过该给定的时间。

  • min-fresh=<seconds>

    表示客户端希望获取一个能在指定的秒数内保持其最新状态的响应。

  • stale-while-revalidate=<seconds>

    表明客户端愿意接受陈旧的响应,同时在后台异步检查新的响应。秒值指示客户愿意接受陈旧响应的时间长度。

  • stale-if-error=<seconds>

    表示如果新的检查失败,则客户愿意接受陈旧的响应。秒数值表示客户在初始到期后愿意接受陈旧响应的时间。

重新验证和重新加载

  • must-revalidate

    一旦资源过期(比如已经超过max-age),在成功向原始服务器验证之前,缓存不能用该资源响应后续请求。

  • proxy-revalidate

    与must-revalidate作用相同,但它仅适用于共享缓存(例如代理),并被私有缓存忽略。

  • immutable

    表示响应正文不会随时间而改变。资源(如果未过期)在服务器上不发生改变,因此客户端不应发送重新验证请求头(例如If-None-Match或If-Modified-Since)来检查更新,即使用户显式地刷新页面。在Firefox中,immutable只能被用在 https:// transactions. 有关更多信息,请参阅这里。

其他

  • no-transform

    不得对资源进行转换或转变。Content-EncodingContent-RangeContent-Type等HTTP头不能由代理修改。例如,非透明代理或者如Google’s Light Mode可能对图像格式进行转换,以便节省缓存空间或者减少缓慢链路上的流量。no-transform指令不允许这样做。

  • only-if-cached

    表明客户端只接受已缓存的响应,并且不要向原始服务器检查是否有更新的拷贝。

例子:

禁止缓存

发送如下响应头可以关闭缓存。此外,可以参考ExpiresPragma消息头。

Cache-Control: no-store

缓存静态资源

对于应用程序中不会改变的文件,你通常可以在发送响应头前添加积极缓存。这包括例如由应用程序提供的静态文件,例如图像,CSS文件和JavaScript文件。另请参阅Expires标题。

Cache-Control:public, max-age=31536000

需要重新验证

指定 no-cachemax-age=0, must-revalidate 表示客户端可以缓存资源,每次使用缓存资源前都必须重新验证其有效性。这意味着每次都会发起 HTTP 请求,但当缓存内容仍有效时可以跳过 HTTP 响应体的下载。(即强制缓存后协商缓存)

Cache-Control: no-cache

Copy to Clipboard

Cache-Control: max-age=0, must-revalidate

Copy to Clipboard

注意: 如果服务器关闭或失去连接,下面的指令可能会造成使用缓存。

Cache-Control: max-age=0

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Connection

Connection: Keep-AliveKeep-Alive:timeout=5,max=1000

当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接

  • timeout:请求的连接时间不能少于5s
  • max:在连接关闭之前服务器能够接收到的最大请求数
Connection: close

代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭:当客户端再次发送Request,需要重新建立TCP连接

Date

日期 时间,是格林威治时间,比北京时间慢八小时

Pragma

只用于客户端发送请求中,客户端会要求所有的中间服务器不返回缓存的资源

http1.0 不使用缓存,Pragma:no-cache

http1.1

  • Cache-Control:no-cache
  • Pragma:no-cache

如果所有的中间服务器都实现http1.1,那么直接Cache-Control:no-cache

Pragma: no-cache可以应用到http 1.0 和http 1.1,而Cache-Control: no-cache只能应用于http 1.1

Trailer

允许发送方在分块发送的消息后面添加额外的元信息,这些元信息可能是随着消息主体的发送动态生成的,比如消息的完整性校验,消息的数字签名,或者消息经过处理之后的最终状态等

HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked
Trailer: Expires

7\r\n
Mozilla\r\n
9\r\n
Developer\r\n
7\r\n
Network\r\n
0\r\n
Expires: Wed, 21 Oct 2015 07:28:00 GMT\r\n
\r\n

Transfer-Encoding

Transfer-Encoding: chunked

Transfer-Encoding: chunked
Transfer-Encoding: compress
Transfer-Encoding: deflate
Transfer-Encoding: gzip
Transfer-Encoding: identity  // 以上都是压缩的,identity是未经过压缩的

// Several values can be listed, separated by a comma
Transfer-Encoding: gzip, chunked

chunked仅仅是HTTP1.0有效,HTTP2.0就不再支持分块传输,而提供了自己更有效的数据传输机制

分块编码主要应用于如下场景,即要传输大量的数据,但是在请求在没有被处理完之前响应的长度是无法获得的。例如,当需要用从数据库中查询获得的数据生成一个大的HTML表格的时候,或者需要传输大量的图片的时候。一个分块响应形式如下:

HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked

7\r\n
Mozilla\r\n
9\r\n
Developer\r\n
7\r\n
Network\r\n
0\r\n
\r\n

Upgrade

Via

为了跟踪客户端和服务器之间的请求/响应路径,避免循环请求 以及能够识别请求/响应链中发送者协议的功能

via字段由代理服务器添加,不管是正向代理还是反向代理,并且可以出现在请求标头和响应表头中

在这里插入图片描述

via后面的1.0 1.1 是接收服务器上的http版本,via是为了跟踪路径,经常和trace方法一起使用

Warning

即将被弃用

请求头

Accept

用来告知(服务器)客户端可以处理的内容类型

Accept: <MIME_type>/<MIME_subtype>Accept: <MIME_type>/*Accept: */*// Multiple types, weighted with the quality value syntax:Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8例子:Accept: text/htmlAccept: image/*Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8

q表示权重,1.0默认不写

Accept-Ranges

用于范围请求

Accept-Ranges: bytesAccept-Ranges: none 范围请求的单位是 bytes (字节)

Accept-Encoding

客户端能够处理的的压缩编码。通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate),(注意:这不是指字符编码)

Accept-Encoding: gzipAccept-Encoding: compressAccept-Encoding: deflateAccept-Encoding: brAccept-Encoding: identityAccept-Encoding: *// Multiple algorithms, weighted with the quality value syntax:Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
gzip

表示采用 Lempel-Ziv coding (LZ77) 压缩算法,以及32位CRC校验的编码方式。

compress

采用 Lempel-Ziv-Welch (LZW) 压缩算法。

deflate

采用 zlib 结构和 deflate 压缩算法。

br

表示采用 Brotli 算法的编码方式。

identity

用于指代自身(例如:未经过压缩和修改)。除非特别指明,这个标记始终可以被接受。

*

匹配其他任意未在该请求头字段中列出的编码方式。假如该请求头字段不存在的话,这个值是默认值。它并不代表任意算法都支持,而仅仅表示算法之间无优先次序。

Accept-Language

客户端需要服务端返回的语言

Accept-Language: zh-CN,zh;q=0.9Accept-Language: en-US;en

Accept-Charset

客户端能接受的字符集

Accept-charset:	utf-8, iso-8859-1;q=0.5, *;q=0.1

Expect

如果服务器没有办法完成客户端所期望完成的事情并且服务端存在错误的话,返回417 Exception Failed

  • http1.1只规定了100-continue
  • 如果能完成期望返回100
  • 不能完成期望或返回任何其他4xx,会返回417

例子:

大消息体

客户端发送带有Expect消息头的请求,等服务器回复后再发送消息体。

PUT /somewhere/fun HTTP/1.1Host: origin.example.comContent-Type: video/h264Content-Length: 1234567890987Expect: 100-continue

服务器开始检查请求消息头,可能会返回一个状态码为 100(Continue) 的回复来告知客户端继续发送消息体,也可能会返回一个状态码为417 (Expectation Failed) 的回复来告知对方要求不能得到满足

From

告知服务器使用用户代理的电子邮件地址。通常情况下,使用目的是显示搜索引擎等用户代理的负责人电子邮件

From: webmaster@example.org

If开头是条件请求 用到的标头

If-Match

请求资源的时候用到,与服务器上的ETag的值对比,防止丢失更新,两者一样则返回412

If-None-Match

在http缓存中使用到

If-Modified-Since

在http缓存中使用到

If-Range

如果满足条件,时间或者ETage,则返回资源

If-Range: Wed, 21 Oct 2015 07:28:00 GMTIf-Range: bfc13a64729c4290ef5b2c2730249c88ca92d82d

If-Unmodified-Since

服务器只有在给定日期之后没有对其进行修改时,服务器才会返回资源

If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT

Proxy-Authorization

客户端和代理服务器的认证

Proxy-Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

Range

断点续传 会讲到

TE

Host

指明了请求将要发送到的服务器主机名和端口号

例如:localhost:8080

Referer

包含了当前请求页面的来源页面的地址,可用于防盗链处理

Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript

请求头可能暴露用户的浏览历史,涉及到用户的隐私问题。

Origin

请求首部字段 Origin 指示了请求来自于哪个站点。该字段仅指示服务器名称,并不包含任何路径信息。该首部用于 CORS 请求或者 POST 请求。除了不包含路径信息,该字段与 Referer 首部字段相似

Origin: https://developer.mozilla.org

User-Agent

浏览器的用户代理字符串。告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4651.0 Safari/537.36

或者是 postman ,或者是java程序发出的

伪装成浏览器

httpGet.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36)");

Authorization

通常用在服务器以401未经授权状态和WWW-Authenticate:Basic

告知客户端需要认证信息

Cookie

k1=v1,k2=v2发送给服务器

响应标头

Accept-Ranges

服务器能够处理客户端的请求

Accept-Ranges:bytes

不能处理客户端的请求

Accept-Ranges:none

具体参考HTTP的断点续传

Age

告诉客户端源服务器在多久之前创建了响应,单位s,Age通常接近0,如果是0则可能是从源服务器获取的,如果不是,表示可能是由代理服务器创建,那么Age的值表示的是缓存后的响应再次发起认证到认证完成的时间值。代理创建响应时必须加上Age

Age:24

Expires

**Expires** 响应头包含日期/时间, 即在此时候之后,响应过期

无效的日期,比如 0, 代表着过去的日期,即该资源已经过期

如果在Cache-Control响应头设置了 “max-age” 或者 “s-max-age” 指令,那么 Expires 头会被忽略。

Expires: Wed, 21 Oct 2015 07:28:00 GMT

ETag

条件请求就是根据ETag的值进行匹配的

特定版本的标识,它能够缓存变得更高效并能够节省宽带,因为如果缓存内容未发生变化,web服务器则不需要重新发送完整的响应,ETag能够防止资源同时更新互相覆盖

给定URL的资源变化了,必须生成一个新的ETag值

  • 强ETag

    ETag: “33a64df551425fcc55e4d42a148795d9f25f89d4”

  • 弱ETag
    ETag: W/“0815”

location

表示重定向的URL

Proxy-Authenticate

表示客户端与代理之间认证

  • Proxy-Authenticate:Basic
  • Proxy-Authenticate:Basic realm = “Access to the internal site”

WWW-Authenticate

401

  • WWW-Authenticate:Basic
  • WWW-Authenticate:Basic realm=“Access to the staging site”, charset=“UTF-8”

Retry-After

告知客户端需要多久重新发送请求

有三种情况

  1. 当发送503(服务不可用),服务预计多长时间不可用
  2. 当发送429(请求太多),发出新请求要等多长时间
  3. 当发送重定向的响应像是301(永久移动),发出重定向请求之前要求客户端等待的最短时间

形式:

  1. Retry-After:Mon, 04 Oct 2021 13:21:05 GMT
  2. Retry-After:120 (单位是秒)

Server

服务器

Server:Apache/2.4.1(UNIX)

Vary

确定如何匹配请求标头,以决定是否可以使用缓存的响应,而不是从服务器请求一个新的响应

比如Vary: Accept-Encoding,User-Agent,那么Accept-Encoding与User-Agent两个请求头的内容,就会作为判断是否返回缓存数据的依据,当缓存服务器中相同请求的缓存数据的编码格式、代理服务与当前请求的编码格式、代理服务一致,那就返回缓存数据,否则就会从服务器重新获取新的数据

关于Vary详细

https://blog.csdn.net/qq_29405933/article/details/84315254

Access-Control-Allow-Origin

告诉浏览器允许该来源访问资源

Access-Control-Allow-Origin:https://mozilla.org,表示允许源https://mozilla.org访问资源

如果服务器指定单个来源而不是*的话,还应在Vary加上Origin 即 Vary:Origin

实体标头

用于请求和响应中

Allow

405 Method Not Allowed,就是客户端和服务端的请求类型不一致

Allow:GET,POST,HEAD

MIME type

Multipurpose Internet Mail Extensions 多用途互联网邮件扩展类型

组成:

MIME-VersionMIME版本1.0
Content-Type内容类型application/x-www-form-urlencoded,application/json
Content-Transfer-Encoding编码格式8bit,binary
Content-Disposition内容排列方式上传和下载需要设置
… …

通用结构 type/subtype,MIME类型对大小写不敏感,但是传统写法都是小写

独立类型

text开头

  • text/html: HTML格式
  • text/plain:纯文本格式
  • text/xml: XML格式

图片格式

  • image/gif :gif 图片格式
  • image/jpeg :jpg 图片格式
  • image/png:png 图片格式

application开头

  • application/xhtml+xml:XHTML 格式
  • application/xml:XML 数据格式
  • application/atom+xml:Atom XML 聚合格式
  • application/json:JSON 数据格式,不需要加上字符集(application/json; charset = utf-8)
  • application/pdf:pdf 格式
  • application/msword:Word 文档格式
  • application/octet-stream:二进制流数据(如常见的文件下载)这是应用程序文件的默认值。意思是 *未知的应用程序文件 ,*浏览器一般不会自动执行或询问执行。浏览器会像对待 设置了HTTP头Content-Disposition值为 attachment 的文件一样来对待这类文件
  • application/x-www-form-urlencoded:表单发送默认格式

媒体文件

  • audio/x-wav:wav文件
  • audio/x-ms-wma:w文件
  • audio/mp3:mp3文件
  • video/x-ms-wmv:wmv文件
  • video/mpeg4:mp4文件
  • video/avi:avi文件

Multipart类型

multipart/form-datamultipart/byteranges

multipart/byteranges 用于把部分的响应报文发送回浏览器。当发送状态码206Partial Content 时,这个MIME类型用于指出这个文件由若干部分组成,每一个都有其请求范围。就像其他很多类型Content-Type使用分隔符来制定分界线。每一个不同的部分都有Content-Type这样的HTTP头来说明文件的实际类型,以及 Content-Range来说明其范围。

HTTP/1.1 206 Partial ContentAccept-Ranges: bytesContent-Type: multipart/byteranges; boundary=3d6b6a416f9b5Content-Length: 385--3d6b6a416f9b5Content-Type: text/htmlContent-Range: bytes 100-200/1270eta http-equiv="Content-type" content="text/html; charset=utf-8" />    <meta name="vieport" content--3d6b6a416f9b5Content-Type: text/htmlContent-Range: bytes 300-400/1270-color: #f0f0f2;        margin: 0;        padding: 0;        font-family: "Open Sans", "Helvetica--3d6b6a416f9b5--

服务器通过后缀在conf/web.xml文件中找到对应的mime-mapping–》设置响应头Content-Tpye的值为mime-type的值

网页表单enctype可用的MIME 类型,即发送post请求时,可以在请求头设置的MIME类型

  • application/x-www-form-urlencoded 数据被编码为名称/值对。这是标准的编码格式,默认行为
  • multipart/form-data(一般用来上传文件): 数据被编码为一条消息,页上的每个控件对应消息中的一个部分
  • text/plain数据以纯文本形式

postman的raw 可以是text/html/xml/json/javascript

Content-Dispostion

Content-Disposition: inlineContent-Disposition: attachmentContent-Disposition: attachment; filename="filename.jpg"

在 HTTP 场景中,第一个参数或者是 inline(默认值,表示回复中的消息体会以页面的一部分或者整个页面的形式展示),或者是 attachment(意味着消息体应该被下载到本地;大多数浏览器会呈现一个“保存为”的对话框,将 filename 的值预填为下载后的文件名,假如它存在的话)。

content-type

句法

Content-Type: text/html; charset=utf-8Content-Type: multipart/form-data; boundary=something

media-type

  • 资源或数据的 MIME type

charset

  • 字符编码标准

boundary

  • 对于多部分实体,boundary 是必需的,其包括来自一组字符的1到70个字符,已知通过电子邮件网关是非常健壮的,而不是以空白结尾。它用于封装消息的多个部分的边界

Content-Encoding

上面说了,Accept-Encoding是客户端希望返回的内容编码,但是实际上服务端返回给客户端的内容编码是根据,Content-Encoding来返回的

Content-Language

服务端用的语言

Content-Length

服务器发送给客户端的实体大小,以字节为单位

Content-Length:3000,总共3000字节

Content-Range

告知客户端响应实体的哪部分是符合客户端请求的,以字节为单位

Content-Range:bytes 200 - 1000/67589

表示从所有67589字节中,返回200-1000字节的内容

Content-Location

表示用于访问资源的直接URL,无需进一步的内容协商

Content-MD5

客户端会对接收的报文主体执行相同的MD5算法,然后与首部字段Content-MD5字段进行比较,

目的在于检查报文主体在传输过程中是否保持完整,有无被修改的情况,以及确认传输到达

Last-Modified

资源最后的修改时间,它用作验证器来确定接收或存储的资源是否相同。它的作用不如ETag那么准确

  1. Content-Security-Policy:

    connect-src * blob:;img-src * data: blob:; worker-src * blob:

  2. Strict-Transport-Security:

    max-age=63072000; includeSubdomains; preload

  3. Transfer-Encoding:

    chunked

  4. Access-Control-Allow-Headers:

Access-Control-Expose-Headers:

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

http请求头和响应头 的相关文章

  • 是否有用于通过 HTTP、HTTP 隧道发送二进制数据的 Java 库?

    我想通过 HTTP 以二进制格式发送相当大的数据块 也称为HTTP 隧道 http en wikipedia org wiki HTTP tunnel 我想通过 Java 将这种技术用于一些 Java Swing 应用程序 也可能是 And
  • 减少1000张图片的HTTP请求?

    我知道这个问题可能听起来有点疯狂 但我想也许有人会想出一个聪明的主意 假设您在一个 HTML 页面上有 1000 个缩略图 图像大小约为5 10 kb 有没有办法在单个请求中加载所有图像 以某种方式将所有图像压缩到一个文件中 或者您对该主题
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • POST 后使用 303 重定向以避免“网页已过期”:如果字节数超过 GET 请求可以处理的字节数,它会工作吗?

    我想解决 网页已过期 问题 首先 我刚刚将 POST 更改为 GET 但这导致出现错误 我的 HTTP 请求超出了 GET 的最大大小 所以 现在我想尝试下面链接中描述的技术 帖子 303 重定向 但是我仍然会遇到相同的大小限制问题吗 对
  • Golang 优雅地关闭 HTTP 服务器并进行错误处理

    我正在让我的 HTTP 服务器正常关闭 我从帖子中获取了提示here https stackoverflow com questions 39320025 how to stop http listenandserve 并且到目前为止已经像
  • 为什么使用HTTP协议时需要指定端口号?

    即使我们使用HTTP协议 为什么还需要用IP地址指定端口号 例如 http xyz 8080 这到底是什么意思 我们已经知道 在使用 HTTP 时 请求将在端口 80 上提供服务 那么为什么我们要显式指定端口呢 HTTP 的默认端口为 80
  • 服务器返回网页 404,但页面在浏览器中显示正常 - 为什么?

    一个奇怪的网页横亘在我面前 作为一名开发人员 我必须解开这个谜团 在任何浏览器中访问网页时 一切似乎都很正常 网页按预期显示 但是当查看控制台时 服务器实际上返回了 404 状态代码 那么浏览器为什么要渲染页面呢 查看正文显示返回了有效的
  • 通过 HTTPS 加载页面但请求不安全的 XMLHttpRequest 端点

    我有一个页面 上面有一些 D3 javascript 该页面位于 HTTPS 网站内 但证书是自签名的 当我加载页面时 我的 D3 可视化效果不显示 并且出现错误 混合内容 页面位于 https integration jsite com
  • 将 HttpApi 与 I/O 完成端口结合使用

    我刚刚偶然发现了微软的HTTP 服务器 API http msdn microsoft com en us library aa364510 28v vs 85 29 aspx 简介中写道 HTTP 服务器 API 使应用程序能够通过 HT
  • MPMoviePlayerController 播放 YouTube 视频

    如何在 iPhone 上的 MPMoviePlayerController 中播放 YouTube 视频 同时避免进入全屏模式 这个问题已经在这里提出 MPMoviePlayerController 正在播放 YouTube 视频吗 htt
  • .net core 2.0代理请求总是导致http 407(需要代理身份验证)

    我正在尝试通过 net core 2 0 Web 应用程序中的 WebProxy 发出 HTTP 请求 我得到的代码在 net框架中运行良好 所以我知道 相信 这不是环境问题 我也尝试使用两者来发出请求HttpWebRequest and
  • 如何使用批处理脚本调用的curl 获取http post 请求的响应代码?

    我正在努力为从我们的工具之一发送 http post 请求提供支持 该工具基本上通过 http 请求执行作业 实现此目的的方法是该工具使用多个参数调用 RunScript bat 该脚本解析这些参数并在验证后发出curl post 请求 P
  • RestSharp RestClient的默认超时值是多少?

    任何人都知道默认超时值休息锐利 https github com restsharp 休息客户端 RestSharp 在底层使用 HttpWebRequest 它有一个默认超时 https msdn microsoft com en us
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何
  • HTTP Header Key 可以重复吗?

    在 JAVA HttpUrlConnection 中 请求 Header 设置的主要逻辑代码如下 public synchronized void set String k String v for int i nkeys i gt 0 i
  • 如何使用 python 的 http.client 准确读取一个响应块?

    Using http client在 Python 3 3 或任何其他内置 python HTTP 客户端库 中 如何一次读取一个分块 HTTP 响应一个 HTTP 块 我正在扩展现有的测试装置 使用 python 编写 http clie
  • 用 C++ 解析 HTTP 标头

    我正在使用curl 与服务器通信 当我发出数据请求时 我收到 HTTP 标头 后跟由边界分隔的 jpeg 数据 如下所示 我需要解析出 边界字符串 内容长度 我已将传入数据复制到 char 数组 如下所示 static size t OnR
  • Node.js 未处理的“错误”事件

    我编写了一个简单的代码并将其保存在文件 try js 中 var http require http var makeRequest function message var options host localhost port 8080
  • 如何记录进入 IIS 的 HTTP 请求

    我在我的开发机器上运行 IIS 5 我有一个 asp net 3 5 Web 服务在其上运行 我从同一服务器上运行的不同 Web 应用程序调用该服务 我的服务返回错误 500 内部服务器错误 我正在对其进行故障排除 我的请求是通过Syste
  • 流星图像、CSS、“普通”Web 服务

    我经常看到这个问题出现 如何在我的 Meteor 网站上放置图像 如何使用 Meteor 托管 标准 网页内容 我尝试添加一个 img src img myimage png 标签但没有图像显示 如何在 Meteor 站点上托管一些文件 将

随机推荐

  • 从零实现vins-mono+fast-planner+M100无人机实验在现实场景中的应用

    版权声明 本文为博主原创文章 未经博主允许不能随意转载 本文链接 https blog csdn net AnChenliang 1002 article details 109535355 最近由于科研的需要 要将VINS mono与fa
  • Linux下C语言实现HTTP文件服务器和TCP协议实现网络数据传输

    在实际开发中经常用到web框架 xff0c 比如Servlet xff0c SpringBoot等 xff0c 这些开发框架提高了我们的开发效率 xff0c 节省了开发时间 但是这会令我们技术人员处于浮云之上 xff0c 看不到其本质 说实
  • Linux下C语言UDP协议通信实践

    UDP和TCP协议一样 xff0c 都是传输层协议 是无连接的 xff0c 不安全的 xff0c 报式传输层协议 xff0c 通信过程默认也是阻塞的 其通信特点主要如下 xff1a xff08 1 xff09 不需要建立连接 xff0c 所
  • Ubuntu下PyQt5使用总结

    因为工作中需要给交付团队开发桌面工具 xff0c 考虑到交付团队多使用Mac xff0c 调研了一下发现PyQt5可以实现跨平台 xff0c 满足工具开发需要 xff0c 就用其开发了桌面工具 现以ubuntu开发环境为例总结一下开发过程
  • ubuntu下安装配置grpc

    目录 1 准备环境 2 安装protobuf 3 安装cares库 3 安装grpc 1 17 x 1 准备环境 sudo apt get install pkg config sudo apt get install autoconf a
  • cmake管理子程序,lib库和so库应用实践

    cmake在管理大型项目时经常被用到 xff0c 本文以简单程序演示来说明camke管理项目应用 xff0c 其中包括主程序 xff0c 子程序 xff0c so库程序 xff0c lib程序 目录 1 程序目录结构 2 编译执行 3 清除
  • GIt常用命令总结

    目录 1 创建新建分支 2 强制拉去代码 3 合并相邻提交 xff0c 保证只有一个commit信息 4 本地回退 5 查看git修改列表 6 提交代码 7 切换新分支并从服务端拉取最新 8 git cherry pick合并代码使用 9
  • Linux 下I/O多路复用总结

    xfeff xfeff select xff0c poll xff0c epoll都是IO多路复用的机制 I O多路复用就通过一种机制 xff0c 可以监视多个描述符 xff0c 一旦某个描述符就绪 xff08 一般是读就绪或者写就绪 xf
  • WAV文件头分析

    WAV语音文件头部含有44字节的标志信息 xff0c 其含义如下 xff1a ckid xff1a 4字节 RIFF 标志 xff0c 大写 wavHeader 0 61 39 R 39 wavHeader 1 61 39 I 39 wav
  • Linux环境下限制网速和取消限制网速

    查看网卡信息 ip addr root 64 rabbitmq01 ip addr 1 lo lt LOOPBACK UP LOWER UP gt mtu 65536 qdisc noqueue state UNKNOWN qlen 1 l
  • Linux 网络编程2 TCP并发服务器

    Linux 网络编程学习 TCP IP网络编程2 TCP多线程服务器TCP多进程服务器 在前面TCP网络编程代码的基础上进行改造 xff0c 实现并发服务器功能 TCP多线程服务器 实现功能 xff1a server端可以绑定在任意IP端s
  • HTTP Digest authentication

    什么是摘要认证 摘要认证 xff08 Digest authentication xff09 是一个简单的认证机制 xff0c 最初是为HTTP协议开发的 xff0c 因而也常叫做HTTP摘要 xff0c 在RFC2617中描述 其身份验证
  • 简单的netfilter hook函数注册以及内核链表的使用

    include lt linux netfilter h gt include lt linux init h gt include lt linux module h gt include lt linux netfilter ipv4
  • 详述GPS原理及RTK技术应用

    完整的PPT文档在这里 xff1a 详述GPS原理及RTK技术应用 1 GPS概述 1 1定义 全球定位系统GPS xff08 Global Position System xff09 xff0c 全称为NAVSTAR GPS xff08
  • PHP HTTP Digest校验

    PHP作为客户端进行HTTP Digest校验 span class token comment 请求方法 span span class token variable username span span class token oper
  • Http Digest认证协议

    其认证的基本框架为挑战认证的结构 xff0c 如下图所示 xff1a xfeff xfeff 1 客户端希望取到服务器上的某个资源 xff0c 向服务器发送Get请求 2 服务器收到客户端的请求后 xff0c 发现这个资源需要认证信息 xf
  • Postman 安装

    Postman 的下载安装 Postman是一个用于构建和使用API的API平台 xff08 接口的调试工具 xff09 选择对应的系统和版本进行下载 https github com hlmd Postman cn 这里我的电脑是wind
  • 【安卓自定义控件系列】自绘控件打造界面超炫功能超强的圆形进度条

    在前面我们讲过了安卓自定义控件三种方式中的组合控件 xff0c 现在我们来讲解一下通过自绘的方式来实现自定义控件 xff0c 本博客将以自定义圆形进度条为例向大家讲解自定义控件的知识 xff0c 首先来看一下效果图吧 xff0c 这个是本人
  • Linux网络编程3——多进/线程并发服务器

    视频链接 黑马程序员 Linux网络编程 哔哩哔哩 bilibili https www bilibili com video BV1iJ411S7UA p 61 37 目录 一 高并发服务器 1 1 图示 1 2 分类 二 多进程并发服务
  • http请求头和响应头

    文章目录 参考HTTP通用标头Cache ControlConnectionDatePragmaTrailerTransfer EncodingUpgradeViaWarning 请求头AcceptAccept RangesAccept E