Http基础 Headers

Headers: 消息头允许客户端和服务器通过 request response传递附加信息。一个请求头由名称(不区分大小写)后跟一个冒号“:”,冒号后跟具体的值(不带换行符)组成。该值前面的引导空白会被忽略。

headers分类:

  • General headers: 同时适用于请求和响应消息,但与最终消息主体中传输的数据无关的消息头。
  • Request headers:包含更多有关要获取的资源或客户端本身信息的消息头。
  • Response headers:包含有关响应的补充信息,如其位置或服务器本身(名称和版本等)的消息头。
  • Entity headers: 包含有关实体主体的更多信息,比如主体长(Content-Length)度或其MIME类型。

General headers :

general header is an HTTP header that can be used in both request and response messages but doesn't apply to the content itself. Depending on the context they are used in, general headers are either response or request headers. However, they are not entity headers.

通用头是一个HTTP头,可以在请求和响应消息中使用,但不适用于内容本身。根据使用它们的上下文,常规头可以是响应头,也可以是请求头。但是,它们不是实体头。

ache-Control

Cache Control general header字段用于指定所有缓存系统必须遵守的指令。语法如下:

Cache-Control : cache-request-directive|cache-response-directive

HTTP客户端或服务器可以使用Cache-Control通用标头来指定缓存参数或从缓存中请求某些类型的文档。 缓存指令在逗号分隔的列表中指定。 例如:

Cache-control: no-cache

下表列出了客户端可以在其HTTP请求中使用的重要缓存请求指令:

S.N.缓存请求指令和描述
1no-cache

如果未成功与原始服务器进行重新验证,则缓存不得使用响应来满足后续请求。

2no-store

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

3max-age = seconds

表示客户端愿意接受其年龄不超过指定时间(seconds 以秒为单位)的响应。

4max-stale [ = seconds ]

表示客户端愿意接受超过其到期时间的响应。 如果给出了seconds 秒数,则它的到期时间不得超过该时间。

5min-fresh = seconds

表示客户端愿意接受其新鲜度不少于当前时间加上指定时间(以秒为单位)的响应。

6no-transform

Does not convert the entity-body.

不转换实体主体。

7only-if-cached

Does not retrieve new data. The cache can send a document only if it is in the cache, and should not contact the origin-server to see if a newer copy exists.

不检索新数据。 仅当高速缓存在高速缓存中时,高速缓存才能发送文档,并且不应与原始服务器联系以查看是否存在较新的副本。

服务器可以在其HTTP响应中使用以下重要的缓存响应指令:

S.N.缓存响应指令和说明
 public

指示响应可以被任何缓存缓存。

2private

指示全部或部分响应消息是针对单个用户的,并且不能由共享缓存缓存。

3no-cache

A cache must not use the response to satisfy a subsequent request without successful re-validation with the origin server.

未经原始服务器成功的重新验证,缓存不得使用响应来满足后续请求。

4no-store

The cache should not store anything about the client request or server response.

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

5no-transform

Does not convert the entity-body.

不转换实体主体。

6must-revalidate

The cache must verify the status of the stale documents before using it and expired ones should not be used.

缓存必须在使用之前验证过时文档的状态,并且不应使用过期的文档。

7proxy-revalidate

The proxy-revalidate directive has the same meaning as the must- revalidate directive, except that it does not apply to non-shared user agent caches.

proxy-revalidate伪指令与must-revalidate伪指令具有相同的含义,只不过它不适用于非共享的用户代理缓存。

8max-age = seconds

Indicates that the client is willing to accept a response whose age is not greater than the specified time in seconds.

表示客户端愿意接受其年龄不超过指定时间(以秒为单位)的响应。

9s-maxage = seconds

The maximum age specified by this directive overrides the maximum age specified by either the max-age directive or the Expires header. The s-maxage directive is always ignored by a private cache.

此伪指令指定的最大年龄将覆盖max-age伪指令或Expires标头指定的最大年龄。 专用缓存始终会忽略s-maxage指令。

Connection

连接general-header 允许发送者指定该特定连接所需的选项,并且代理不能通过其他连接传达这些选项。 以下是使用连接头的简单语法:

Connection : "Connection"

HTTP / 1.1为发送方定义了“close”连接选项,以指示响应完成后将关闭连接。 例如:

Connection: close

默认情况下,HTTP 1.1使用持久连接,该连接在事务处理后不会自动关闭。 另一方面,HTTP 1.0默认情况下不具有持久连接。 如果1.0客户端希望使用持久连接,则使用保持活动参数如下:

Connection: keep-alive

Date

All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT), without exception. HTTP applications are allowed to use any of the following three representations of date/time stamps:

所有HTTP date/time 都必须毫无例外地以格林威治标准时间(GMT)表示。 允许HTTP应用程序使用日期/时间戳的以下三种表示形式中的任何一种:

Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format

在这里,第一种格式是最推荐的格式。

Pragma

Pragma general header字段用于包含特定于实现的指令,这些指令可能应用于request/response上的任何收件人。例如:

Pragma: no-cache

HTTP / 1.0中定义的唯一指令是no-cache指令,并在HTTP 1.1中进行维护以实现向后兼容。 将来不会定义新的Pragma指令。

Trailer

Trailer常规字段值指示给定的报头字段集存在于使用分块传输编码编码的消息的尾部中。 以下是Trailer头字段的语法:

Trailer : field-name

报头标头字段中列出的邮件标头字段不得包含以下标头字段:

  • Transfer-Encoding

  • Content-Length

  • Trailer

Transfer-Encoding

The Transfer-Encoding general-header field indicates what type of transformation has been applied to the message body in order to safely transfer it between the sender and the recipient. This is not the same as content-encoding because transfer-encodings are a property of the message, not of the entity-body. The syntax of Transfer-Encoding header field is as follows:

Transfer-Encoding general-header字段指示已应用于邮件正文的转换类型,以便在发件人和收件人之间安全地进行传输。这与内容编码不同,因为传输编码是消息的属性,而不是实体体的属性。传输编码头字段的语法如下:

Transfer-Encoding: chunked

所有传输编码值都不区分大小写。

Upgrade

The Upgrade general-header allows the client to specify what additional communication protocols it supports and would like to use if the server finds it appropriate to switch protocols. For example:

 Upgrade general-header 允许客户端指定其支持的其他通信协议,以及如果服务器认为适合切换协议则希望使用的通信协议。 例如:

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

 Upgrade general-header 在提供一种从HTTP / 1.1过渡到其他不兼容协议的简单机制。

Via

The Via general-header must be used by gateways and proxies to indicate the intermediate protocols and recipients. For example, a request message could be sent from an HTTP/1.0 user agent to an internal proxy code-named "fred", which uses HTTP/1.1 to forward the request to a public proxy at nowhere.com, which completes the request by forwarding it to the origin server at www.ics.uci.edu. The request received by www.ics.uci.edu would then have the following Via header field:

必须通过网关和代理来使用泛素标头来指示中间协议和接收方。例如,请求消息可以从HTTP/1.0用户代理发送到名为“fred”的内部代理代码,后者使用HTTP/1.1将请求转发到nowhere.com上的公共代理,后者通过将请求转发到www.ics.uci.edu上的源服务器来完成请求。然后,www.ics.uci.edu接收到的请求将具有以下Via header字段:

Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)

Upgrade header在提供一种从HTTP / 1.1过渡到其他不兼容协议的简单机制。

Warning

警告总标题用于携带有关消息状态或转换的其他信息,这些信息可能未反映在消息中。 一个响应可能包含多个警告标头。

Warning : warn-code SP warn-agent SP warn-text SP warn-date

Request Headers

Accept

接受request-header可用于指定响应可接受的某些媒体类型。 通用语法如下:

Accept: type/subtype [q=qvalue]

可以列出多个用逗号分隔的媒体类型,可选的qvalue表示可接受类型的可接受质量等级,范围为0到1。以下是一个示例:

Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c

这将被解释为text / html和text / x-c,并且是首选的媒体类型,但是如果它们不存在,则发送text / x-dvi实体,如果不存在,则发送text / plain实体。

Accept-Charset

``Accept-Charset '请求标头字段可用于指示响应可接受的字符集。 以下是一般语法:

Accept-Charset: character_set [q=qvalue]

可以列出多个字符集,以逗号分隔,可选的qvalue表示非首选字符集的可接受质量等级,范围为0到1。以下是一个示例:

Accept-Charset: iso-8859-5, unicode-1-1; q=0.8

特殊值“ *”(如果存在于“Accept-Charset”字段中)则与每个字符集匹配,并且如果不存在“Accept-Charset ”标头,则默认值为任何字符集都可以接受。

Accept-Encoding

``Accept-Encoding''请求标头字段与``接受''相似,但是限制了响应中可接受的内容编码。 通用语法为:

Accept-Encoding: encoding types

示例如下:

Accept-Encoding: compress, gzip
Accept-Encoding:
Accept-Encoding: *
Accept-Encoding: compress;q=0.5, gzip;q=1.0
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0

Accept-Language

接受语言请求标头字段类似于接受,但限制了首选的自然语言集作为对请求的响应。 通用语法为:

Accept-Language: language [q=qvalue]

可以列出多种语言,以逗号分隔,可选的qvalue表示非首选语言的可接受质量等级,范围为0到1。以下是一个示例:

Accept-Language: da, en-gb;q=0.8, en;q=0.7

Authorization

The Authorization request-header field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. The general syntax is:

``授权请求头''字段值由包含用于请求资源领域的用户代理的身份验证信息的凭据组成。 通用语法为:

Authorization : credentials

HTTP / 1.0规范定义了BASIC授权方案,其中授权参数是在base 64中编码的字符串username:password。下面是一个示例:

Authorization: BASIC Z3Vlc3Q6Z3Vlc3QxMjM=

该值解码为guest:guest123,其中guest是用户ID,guest123是密码。

Cookie

Cookie的请求标头字段值包含为该URL存储的名称/值信息对。 以下是一般语法:

Cookie: name=value

Multiple cookies can be specified separated by semicolons as follows:

Cookie: name1=value1;name2=value2;name3=value3

Expect

Expect请求头字段用于指示客户端需要一组特定的服务器行为。一般语法为:

Expect : 100-continue | expectation-extension

如果服务器接收到包含预期字段的请求,该字段包含它不支持的预期扩展,则它必须以417(Expectation Failed)状态响应。

From

From请求头字段包含控制请求用户代理的用户的Internet电子邮件地址。下面是一个简单的例子:

From: webmaster@w3.org

此头字段可用于日志记录,并用作识别无效或不需要的请求源的方法。

Host

主机请求头字段用于指定Internet主机和所请求资源的端口号。一般语法为:

Host : "Host" ":" host [ ":" port ] ;

没有任何后续端口信息的主机表示默认端口,即80。例如,在源服务器上请求http://www.w3.org/pub/www/将是:

GET /pub/WWW/ HTTP/1.1
Host: www.w3.org

If-Match

If-Match请求头字段与方法一起使用,使其成为条件。只有此标记中的给定值与ETag表示的给定实体标记匹配时,此头才会请求服务器执行请求的方法。一般语法为:

If-Match : entity-tag

(*)匹配任何实体,并且事务只有在实体存在时才继续。以下是可能的示例:

If-Match: "xyzzy"
If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
If-Match: *

如果没有实体标签匹配,或者如果给出了“*”而没有当前实体,则服务器必须不执行请求的方法,并且必须返回412(前提条件失败)响应。

If-Modified-Since

If Modified Since请求头字段与方法一起使用,使其成为条件字段。如果请求的URL自该字段中指定的时间以来未被修改,则不会从服务器返回实体;相反,将返回304(未修改)响应,而不返回任何消息正文。if modified since的一般语法为

If-Modified-Since : HTTP-date

例如:

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

如果没有实体标签匹配,或者如果给出了“*”而没有当前实体,则服务器必须不执行请求的方法,并且必须返回412(前提条件失败)响应。

If-None-Match

If Modified Since请求头字段与方法一起使用,使其成为条件字段。如果请求的URL自该字段中指定的时间以来未被修改,则不会从服务器返回实体;相反,将返回304(未修改)响应,而不返回任何消息正文。if modified since的一般语法为:

If-None-Match : entity-tag

星号(*)与任何实体匹配,并且仅当该实体不存在时交易才继续。 以下是示例:

If-None-Match: "xyzzy"
If-None-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
If-None-Match: *

If-Range

If-Range请求标头字段可与条件GET一起使用,以仅请求丢失的实体部分(如果尚未更改)以及整个实体(如果已更改)。 通用语法如下:

If-Range : entity-tag | HTTP-date

实体标签或日期均可用于标识已接收的部分实体。 例如:

If-Range: Sat, 29 Oct 1994 19:43:31 GMT

在此,如果自给定日期以来未对文档进行过修改,则服务器将返回Range标头给出的字节范围,否则它将返回所有新文档。

If-Unmodified-Since

If-Unmodified-Since请求标头字段与一种使其成为条件的方法一起使用。 通用语法为:

If-Unmodified-Since : HTTP-date

如果自此字段中指定的时间以来未修改请求的资源,则服务器应执行请求的操作,就像不存在If-Unmodified-Since标头一样。 例如:

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

如果请求的结果不是2xx或412状态,则应忽略If-Unmodified-Since标头。

Max-Forwards

Max-Forwards请求标头字段提供了一种具有TRACE和OPTIONS方法的机制,以限制可以将请求转发到下一个入站服务器的代理或网关的数量。 以下是一般语法:

Max-Forwards : n

Max-Forwards值是一个十进制整数,指示此请求消息可以转发的剩余次数。 这对于使用TRACE方法进行调试很有用,可避免无限循环。 例如:

Max-Forwards : 5

Max-Forwards值是一个十进制整数,指示此请求消息可以转发的剩余次数。 这对于使用TRACE方法进行调试很有用,可避免无限循环。 例如:

Proxy-Authorization

``Proxy-Authorization''请求标头字段允许客户端向需要身份验证的代理标识自己(或其用户)。 以下是一般语法:

Proxy-Authorization : credentials

Proxy-Authorization字段值由凭据组成,这些凭据包含用于所请求资源的代理和/或领域的用户代理的身份验证信息。

Range

范围请求标头字段指定从文档中请求的内容的部分范围。 通用语法为:

Range: bytes-unit=first-byte-pos "-" [last-byte-pos]

字节范围规范中的第一个字节pos值给出范围中第一个字节的字节偏移量。最后一个字节pos值给出范围内最后一个字节的字节偏移量;也就是说,指定的字节位置是包含的。可以将字节单位指定为字节。字节偏移量从零开始。一些简单的例子如下:

- The first 500 bytes 
Range: bytes=0-499

- The second 500 bytes
Range: bytes=500-999

- The final 500 bytes
Range: bytes=-500

- The first and last bytes only
Range: bytes=0-0,-1

可以列出多个范围,用逗号分隔。如果逗号分隔字节范围中的第一个数字丢失,则假定该范围从文档结尾开始计算。如果缺少第二个数字,则范围是从n字节到文档末尾。

Referer

Referer请求头字段允许客户端指定从中请求URL的资源的地址(URI)。一般语法如下:

Referer : absoluteURI | relativeURI

例子:

Referer: http://www.tutorialspoint.org/http/index.htm

如果字段值是相对URI,则应相对于请求URI进行解释。

TE

TE请求头字段指示它愿意在响应中接受什么扩展传输编码,以及它是否愿意在分块传输编码中接受尾部字段。以下是通用语法:

TE   : t-codings

关键字“trailures”的出现表示客户端愿意接受分块传输编码中的trailer字段,并通过以下任一方式指定:

TE: deflate
TE:
TE: trailers, deflate;q=0.5

如果TE字段值为空或没有TE字段,则只对传输编码进行分块。没有传输编码的消息总是可以接受的。

User-Agent

用户代理请求头字段包含有关发起请求的用户代理的信息。以下是通用语法:

User-Agent : product | comment
​​​例子:
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

Server Response Headers

Accept-Ranges

Accept Ranges response header字段允许服务器指示其接受资源的范围请求。一般语法为:

Accept-Ranges  : range-unit | none

例如,接受字节范围请求的服务器可以发送:

Accept-Ranges: bytes

不接受任何类型的资源范围请求的服务器可能会发送:

Accept-Ranges: none

这将建议客户端不要尝试范围请求。

Age

Age response header字段表示发件人对自响应(或其重新验证)在源服务器上生成以来的时间量的估计。一般语法为:

Age : delta-seconds

年龄值是非负十进制整数,表示时间(秒)。下面是一个简单的例子:

Age: 1030

包含缓存的HTTP/1.1服务器必须在从其自身缓存生成的每个响应中包含Age header字段。

ETag

ETag response header字段为请求的变量提供实体标记的当前值。一般语法为:

ETag :  entity-tag

下面是一些简单的例子:

ETag: "xyzzy"
ETag: W/"xyzzy"
ETag: ""

Location

位置响应头字段用于将收件人重定向到请求URI以外的位置以完成。一般语法为:

Location : absoluteURI

下面是一个简单的例子:

Location: http://www.tutorialspoint.org/http/index.htm

内容位置头字段不同于位置,因为内容位置标识了请求中包含的实体的原始位置。

Proxy-Authenticate

代理身份验证响应头字段必须作为407(需要代理身份验证)响应的一部分包含。一般语法为:

Proxy-Authenticate  : challenge

Retry-After

Retry After response header字段可与503(服务不可用)响应一起使用,以指示请求客户端预期服务不可用的时间。一般语法为:

Retry-After : HTTP-date | delta-seconds

示例:

Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
Retry-After: 120

在后一个示例中,延迟为2分钟。

Server

服务器响应头字段包含有关源服务器用于处理请求的软件的信息。一般语法为:

Server : product | comment

下面是一个简单的例子:

Server: Apache/2.2.14 (Win32)

如果响应是通过代理转发的,则代理应用程序不得修改服务器响应头。

Set-Cookie

Set Cookie response header字段包含要为此URL保留的名称/值信息对。一般语法为:

Set-Cookie: NAME=VALUE; OPTIONS

Set Cookie response header包含令牌Set Cookie,后跟一个或多个Cookie的逗号分隔列表。以下是可以指定为选项的可能值:

S.N.选项和说明
1Comment=comment

This option can be used to specify any comment associated with the cookie.

此选项可用于指定与cookie关联的任何注释。

2Domain=domain

The Domain attribute specifies the domain for which the cookie is valid.

Domain属性指定cookie有效的域。

3Expires=Date-time

The date the cookie will expire. If it is blank, the cookie will expire when the visitor quits the browser.

cookie将过期的日期。如果为空,则当访问者退出浏览器时,cookie将过期。

4Path=path

The Path attribute specifies the subset of URLs to which this cookie applies.

Path属性指定应用此cookie的url的子集。

5Secure

It instructs the user agent to return the cookie only under a secure connection.

它指示用户代理只在安全连接下返回曲奇。

Following is an example of a simple cookie header generated by the server:

以下是服务器生成的简单cookie头的示例:

Set-Cookie: name1=value1,name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT

Vary

Vary response header字段指定实体具有多个源,因此可能会根据指定的请求头列表而有所不同。以下是通用语法:

Vary : field-name

可以指定多个以逗号分隔的头,星号“*”表示未指定的参数不限于请求头。下面是一个简单的例子:

Vary: Accept-Language, Accept-Encoding

这里的字段名不区分大小写。

WWW-Authenticate

WWW身份验证响应头字段必须包含在401(未授权)响应消息中。字段值至少包含一个质询,该质询指示适用于请求URI的身份验证方案和参数。一般语法为:

WWW-Authenticate : challenge

WWW-Authenticate字段值可能包含多个质询,或者如果提供多个WWW-Authenticate头字段,质询本身的内容可以包含以逗号分隔的身份验证参数列表。下面是一个简单的例子:

WWW-Authenticate: BASIC realm="Admin"

Entity Headers

Allow

允许实体头字段列出由请求URI标识的资源支持的方法集。一般语法为:

Allow : Method

可以指定多个用逗号分隔的方法。下面是一个简单的例子:

Allow: GET, HEAD, PUT

此字段不能阻止客户端尝试其他方法。

Content-Encoding

内容编码实体头字段用作媒体类型的修饰符。一般语法为:

Content-Encoding : content-coding

内容编码是由请求URI标识的实体的一个特征。下面是一个简单的例子:

Content-Encoding: gzip

如果源服务器不接受请求消息中实体的内容编码,则服务器应使用状态代码415(不支持的媒体类型)响应。

Content-Language

Content Language entity header字段描述封闭实体的预期访问群体的自然语言。以下是通用语法:

Content-Language : language-tag

对于面向多个受众的内容,可能会列出多种语言。下面是一个简单的例子:

Content-Language: mi, en

内容语言的主要目的是允许用户根据自己的首选语言识别和区分实体。

Content-Length

Content Length entity header字段指示发送给收件人的实体体的大小(以十进制八位字节为单位),或者在HEAD方法的情况下,指示如果请求是GET,本应发送的实体体的大小。一般语法为:

Content-Length : DIGITS

下面是一个简单的例子:

Content-Length: 3495

任何大于或等于零的内容长度都是有效值。

Content-Location

当可以从独立于请求的资源的URI的位置访问实体时,可以使用Content Location entity header字段为消息中包含的实体提供资源位置。一般语法为:

Content-Location:  absoluteURI | relativeURI 

下面是一个简单的例子:

Content-Location: http://www.tutorialspoint.org/http/index.htm

Content Location的值还定义实体的基本URI。

Content-MD5

Content-MD5实体头字段可用于提供实体的MD5摘要,以便在收到消息时检查消息的完整性。一般语法为:

Content-MD5  : md5-digest using base64 of 128 bit MD5 digest as per RFC 1864

下面是一个简单的例子:

Content-MD5  : 8c2d46911f3f5a326455f0ed7a8ed3b3

MD5摘要是根据实体体的内容计算的,包括已应用的任何内容编码,但不包括应用于消息体的任何传输编码。

Content-Range

内容范围实体标题字段与部分实体正文一起发送,以指定应在整个实体正文中应用部分正文的位置。一般语法为:

Content-Range : bytes-unit SP first-byte-pos "-" last-byte-pos

字节内容范围规范值的示例,假设实体总共包含1234个字节:

- The first 500 bytes:
Content-Range : bytes 0-499/1234

- The second 500 bytes:
Content-Range : bytes 500-999/1234

- All except for the first 500 bytes:
Content-Range : bytes 500-1233/1234

- The last 500 bytes:
Content-Range : bytes 734-1233/1234

当HTTP消息包含单个范围的内容时,将使用Content-Range标头和显示实际传输的字节数的Content-Length标头传输此内容。 例如,

HTTP/1.1 206 Partial content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-Range: bytes 21010-47021/47022
Content-Length: 26012
Content-Type: image/gif

Content-Type

Content-Type实体标头字段指示发送给接收方的实体主体的媒体类型,对于HEAD方法,如果请求是GET,则应发送的媒体类型。 通用语法为:

Content-Type : media-type

以下是一个示例:

Content-Type: text/html; charset=ISO-8859-4

Expires

Expires实体标题字段提供了将响应视为过时的日期/时间。 通用语法为:

Expires : HTTP-date

以下是一个示例::

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

Last-Modified

``Last-Modified''entity-header字段指示原始服务器认为该变体最后被修改的日期和时间。 通用语法为:

Last-Modified: HTTP-date

以下是一个示例:

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值