All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.juneau.http.Vary Maven / Gradle / Ivy

There is a newer version: 9.0.1
Show newest version
// ***************************************************************************************************************************
// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
// * with the License.  You may obtain a copy of the License at                                                              *
// *                                                                                                                         *
// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
// *                                                                                                                         *
// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
// * specific language governing permissions and limitations under the License.                                              *
// ***************************************************************************************************************************
package org.apache.juneau.http;

/**
 * Represents a parsed Vary HTTP response header.
 *
 * 

* Tells 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. * *

Example
*

* Vary: * * Vary: Accept-Language *

* *
RFC2616 Specification
* * The Vary field value indicates the set of request-header fields that fully determines, while the response is fresh, * whether a cache is permitted to use the response to reply to a subsequent request without revalidation. * For uncacheable or stale responses, the Vary field value advises the user agent about the criteria that were used to * select the representation. * A Vary field value of "*" implies that a cache cannot determine from the request headers of a subsequent request * whether this response is the appropriate representation. * See section 13.6 for use of the Vary header field by caches. *

* Vary = "Vary" ":" ( "*" | 1#field-name ) *

* *

* An HTTP/1.1 server SHOULD include a Vary header field with any cacheable response that is subject to server-driven * negotiation. * Doing so allows a cache to properly interpret future requests on that resource and informs the user agent about the * presence of negotiation on that resource. * A server MAY include a Vary header field with a non-cacheable response that is subject to server-driven negotiation, * since this might provide the user agent with useful information about the dimensions over which the response varies * at the time of the response. * *

* A Vary field value consisting of a list of field-names signals that the representation selected for the response is * based on a selection algorithm which considers ONLY the listed request-header field values in selecting the most * appropriate representation. * A cache MAY assume that the same selection will be made for future requests with the same values for the listed * field names, for the duration of time for which the response is fresh. * *

* The field-names given are not limited to the set of standard request-header fields defined by this specification. * Field names are case-insensitive. * *

* A Vary field value of "*" signals that unspecified parameters not limited to the request-headers (e.g., the network * address of the client), play a role in the selection of the response representation. * The "*" value MUST NOT be generated by a proxy server; it may only be generated by an origin server. * *

Additional Information
* */ public final class Vary extends HeaderString { /** * Returns a parsed Vary header. * * @param value The Vary header string. * @return The parsed Vary header, or null if the string was null. */ public static Vary forString(String value) { if (value == null) return null; return new Vary(value); } private Vary(String value) { super(value); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy