HTTP Headers参考使用

Requests

Field nameDescriptionExample
AcceptContent-Types that are acceptableAccept: text/plain
Accept-CharsetCharacter sets that are acceptableAccept-Charset: utf-8
Accept-EncodingAcceptable encodingsAccept-Encoding: <compress | gzip | identity>
Accept-LanguageAcceptable languages for responseAccept-Language: en-US
Accept-RangesAllows the server to indicate its acceptance of range requests for a resourceAccept-Ranges: bytes
AuthorizationAuthentication credentials for HTTP authenticationAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-ControlUsed to specify directives that MUST be obeyed by all caching mechanisms along the request/response chainCache-Control: no-cache
ConnectionWhat type of connection the user-agent would preferConnection: close
Cookiean HTTP cookie previously sent by the server with Set-Cookie (below)Cookie: $Version=1; Skin=new;
Content-LengthThe length of the request body in octets (8-bit bytes)Content-Length: 348
Content-TypeThe mime type of the body of the request (used with POST and PUT requests)Content-Type: application/x-www-form-urlencoded
DateThe date and time that the message was sentDate: Tue, 15 Nov 1994 08:12:31 GMT
ExpectIndicates that particular server behaviors are required by the clientExpect: 100-continue
FromThe email address of the user making the requestFrom: user@email.com
HostThe domain name of the server (for virtual hosting), mandatory since HTTP/1.1Host: en.wikipedia.org
If-MatchOnly perform the action if the client supplied entity matches the same entity on the server. This is mainly for methods like PUT to only update a resource if it has not been modified since the user last updated it.If-Match: "737060cd8c284d8af7ad3082f209582d"
If-Modified-SinceAllows a 304 Not Modified to be returned if content is unchangedIf-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-None-MatchAllows a 304 Not Modified to be returned if content is unchanged, see HTTP ETagIf-None-Match: "737060cd8c284d8af7ad3082f209582d"
If-RangeIf the entity is unchanged, send me the part(s) that I am missing; otherwise, send me the entire new entityIf-Range: "737060cd8c284d8af7ad3082f209582d"
If-Unmodified-SinceOnly send the response if the entity has not been modified since a specific time.If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Max-ForwardsLimit the number of times the message can be forwarded through proxies or gateways.Max-Forwards: 10
PragmaImplementation-specific headers that may have various effects anywhere along the request-response chain.Pragma: no-cache
Proxy-AuthorizationAuthorization credentials for connecting to a proxy.Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
RangeRequest only part of an entity. Bytes are numbered from 0.Range: bytes=500-999
RefererThis is the address of the previous web page from which a link to the currently requested page was followed.Referer: http://en.wikipedia.org/wiki/Main_Page
TEThe transfer encodings the user agent is willing to accept: the same values as for the response header Transfer-Encoding can be used, plus the "trailers" value (related to the "chunked" transfer method) to notify the server it accepts to receive additional headers (the trailers) after the last, zero-sized, chunk.TE: trailers, deflate;q=0.5
UpgradeAsk the server to upgrade to another protocol.Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
User-AgentThe user agent string of the user agentUser-Agent: Mozilla/5.0 (Linux; X11)
ViaInforms the server of proxies through which the request was sent.Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
WarningA general warning about possible problems with the entity body.Warning: 199 Miscellaneous warning

Responses

Field nameDescriptionExample
Accept-RangesWhat partial content range types this server supportsAccept-Ranges: bytes
AgeThe age the object has been in a proxy cache in secondsAge: 12
AllowValid actions for a specified resource. To be used for a 405 Method not allowedAllow: GET, HEAD
Cache-ControlTells all caching mechanisms from server to client whether they may cache this objectCache-Control: no-cache
Content-EncodingThe type of encoding used on the dataContent-Encoding: gzip
Content-LanguageThe language the content is inContent-Language: da
Content-LengthThe length of the response body in octets (8-bit bytes)Content-Length: 348
Content-LocationAn alternate location for the returned dataContent-Location: /index.htm
Content-DispositionAn opportunity to raise a "File Download" dialogue box for a known MIME typeContent-Disposition: attachment; filename=fname.ext
Content-MD5A Base64-encoded binary MD5 sum of the content of the responseContent-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-RangeWhere in a full body message this partial message belongsContent-Range: bytes 21010-47021/47022
Content-TypeThe mime type of this contentContent-Type: text/html; charset=utf-8
DateThe date and time that the message was sentDate: Tue, 15 Nov 1994 08:12:31 GMT
ETagAn identifier for a specific version of a resource, often a Message Digest, see ETagETag: "737060cd8c284d8af7ad3082f209582d"
ExpiresGives the date/time after which the response is considered staleExpires: Thu, 01 Dec 1994 16:00:00 GMT
Last-ModifiedThe last modified date for the requested object, in RFC 2822 formatLast-Modified: Tue, 15 Nov 1994 12:45:26 GMT
LocationUsed in redirection, or when a new resource has been created.Location: http://www.w3.org/pub/WWW/People.html
PragmaImplementation-specific headers that may have various effects anywhere along the request-response chain.Pragma: no-cache
Proxy-AuthenticateRequest authentication to access the proxy.Proxy-Authenticate: Basic
RefreshUsed in redirection, or when a new resource has been created. This refresh redirects after 5 seconds.
(This is a proprietary/non-standard header extension introduced by Netscape and supported by most web browsers.)
Refresh: 5; url=http://www.w3.org/pub/WWW/People.html
Retry-AfterIf an entity is temporarily unavailable, this instructs the client to try again after a specified period of time.Retry-After: 120
ServerA name for the serverServer: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Set-Cookiean HTTP cookieSet-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
TrailerThe Trailer general field value indicates that the given set of header fields is present in the trailer of a message encoded with chunked transfer-coding.Trailer: Max-Forwards
Transfer-EncodingThe form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity.Transfer-Encoding: chunked
VaryTells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server.Vary: *
ViaInforms the client of proxies through which the response was sent.Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
WarningA general warning about possible problems with the entity body.Warning: 199 Miscellaneous warning
WWW-AuthenticateIndicates the authentication scheme that should be used to access the requested entity.WWW-Authenticate: Basic

Common non-standard headers

Non-standard headers can be used, with the convention of prefixing the header name with X- .[1]

Field nameDescriptionExample
X-Frame-Options[2]Clickjacking protection. DENY - no rendering within a frame, SAMEORIGIN - no rendering if origin mismatchX-Frame-Options: DENY
X-XSS-Protection[citation needed]Cross-site scripting (XSS) filterX-XSS-Protection: 1; mode=block
X-Requested-With[3]mainly used to identify Ajax requests. Most JavaScript frameworks send this header with value of XMLHttpRequestX-Requested-With: XMLHttpRequest
X-Forwarded-For[4]a de facto standard for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancerX-Forwarded-For: client1, proxy1, proxy2
X-Forwarded-Proto[citation needed]a de facto standard for identifying the originating protocol of an HTTP request, since a reverse proxy (load balancer) communicates with a web server using HTTPX-Forwarded-Proto: https
是的,通过设置 `HttpHeaders` 可以解决 "strict-origin-when-cross-origin" 错误。在 Java 中,你可以使用 Apache HttpClient 或者 Spring 的 `RestTemplate` 来发送 HTTP 请求并设置相应的头信息。 以下是使用 Apache HttpClient 的示例代码: ```java import org.apache.http.HttpHeaders; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class FileDownloader { public static void main(String[] args) throws Exception { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://example.com/file.pdf"); // 设置跨域请求头 httpGet.setHeader(HttpHeaders.ORIGIN, "*"); // 发送请求 CloseableHttpResponse response = httpClient.execute(httpGet); // 处理响应 if (response.getStatusLine().getStatusCode() == 200) { // 下载文件或处理响应内容 String responseBody = EntityUtils.toString(response.getEntity()); System.out.println(responseBody); } else { // 处理错误情况 System.out.println("请求失败: " + response.getStatusLine().getReasonPhrase()); } // 关闭连接和释放资源 response.close(); httpClient.close(); } } ``` 请注意,将 `*` 设置为 `HttpHeaders.ORIGIN` 的值将允许所有来源的跨域请求。在生产环境中,你可以根据需要设置合适的来源。 使用 Spring 的 `RestTemplate` 也可以实现类似的功能,只需要设置相应的 `HttpHeaders`: ```java import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; public class FileDownloader { public static void main(String[] args) { RestTemplate restTemplate = new RestTemplate(); String url = "http://example.com/file.pdf"; // 设置跨域请求头 HttpHeaders headers = new HttpHeaders(); headers.set(HttpHeaders.ORIGIN, "*"); // 发送请求并获取响应 ResponseEntity<byte[]> response = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(headers), byte[].class); // 处理响应 if (response.getStatusCode().is2xxSuccessful()) { // 下载文件或处理响应内容 byte[] responseBody = response.getBody(); System.out.println(responseBody); } else { // 处理错误情况 System.out.println("请求失败: " + response.getStatusCode()); } } } ``` 这些示例代码仅供参考,你可以根据自己的项目需求进行调整。记得导入相应的依赖库,如 Apache HttpClient 或者 Spring Web。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平头老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值