# NoVarySearchHeader

Artifact: [androidx.webkit:webkit](https://developer.android.com/jetpack/androidx/releases/webkit) [View Source](https://cs.android.com/search?q=file:androidx/webkit/NoVarySearchHeader.java+class:androidx.webkit.NoVarySearchHeader) Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

*** ** * ** ***


```
@Profile.ExperimentalUrlPrefetch
public class NoVarySearchHeader
```

<br />

*** ** * ** ***

The No-Vary-Search header specifies a set of rules that define how a URL's query parameters will affect cache matching. These rules dictate whether the same URL with different URL parameters should be saved as separate browser cache entries.

See [Doc here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/No-Vary-Search) to learn more about No-Vary-Search.

## Summary

| ### Public fields |
|---|---|
| `final @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#consideredQueryParameters()` A `https://developer.android.com/reference/java/util/List.html` of parameters that if present, will cause otherwise identical URLs to be cached as separate entries. |
| `final boolean` | `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#ignoreDifferencesInParameters()` A `true` to indicate the differences in parameters present between otherwise identical URLs will not cause them to be cached as separate entries. |
| `final @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#ignoredQueryParameters()` A `https://developer.android.com/reference/java/util/List.html` of parameters that if present, will not cause otherwise identical URLs to be cached as separate entries. |
| `final boolean` | `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#varyOnKeyOrder()` If `true` this indicates that differences in the order of parameters between otherwise identical URLs will cause them to be cached as separate entries. |

| ### Public methods |
|---|---|
| `static @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#alwaysVaryHeader()()` Returns No-Vary-Search header that considers all differences in query parameters (i.e. presence and ordering) between otherwise identical URLs in cache matching. |
| `static @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#neverVaryExcept(boolean,java.util.List<java.lang.String>)( boolean varyOnOrdering, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> consideredQueryParameters )` Returns No-Vary-Search header that doesn't consider differences in in query parameters present between otherwise identical URLs in cache matching with the exception of the ones provided in `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#consideredQueryParameters()`. |
| `static @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#neverVaryHeader()()` Returns No-Vary-Search header that doesn't consider any differences in query parameters (i.e. presence or ordering) between otherwise identical URLs in cache matching. |
| `static @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#varyExcept(boolean,java.util.List<java.lang.String>)( boolean varyOnOrdering, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> ignoredQueryParameters )` Returns No-Vary-Search header that considers differences in in query parameters present between otherwise identical URLs in cache matching with the exception of the ones provided in `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#ignoredQueryParameters()`. |

## Public fields

### consideredQueryParameters

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
public final @NonNull List<String> consideredQueryParameters
```

A `https://developer.android.com/reference/java/util/List.html` of parameters that if present, will cause otherwise identical URLs to be cached as separate entries. Any parameters present in the URLs that are not included in this list will not affect cache matching.

This list is irrelevant and not used if `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#ignoreDifferencesInParameters()` is `false`.

### ignoreDifferencesInParameters

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
public final boolean ignoreDifferencesInParameters
```

A `true` to indicate the differences in parameters present between otherwise identical URLs will not cause them to be cached as separate entries. `false` otherwise.

### ignoredQueryParameters

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
public final @NonNull List<String> ignoredQueryParameters
```

A `https://developer.android.com/reference/java/util/List.html` of parameters that if present, will not cause otherwise identical URLs to be cached as separate entries. Any parameters present in the URLs that are not included in this list will affect cache matching.

This list is irrelevant and not used if `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#ignoreDifferencesInParameters()` is `true`.

### varyOnKeyOrder

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
public final boolean varyOnKeyOrder
```

If `true` this indicates that differences in the order of parameters between otherwise identical URLs will cause them to be cached as separate entries.

However, differences in the parameters present will cause them to be cached separately regardless of this flag's value.

To ignore any differences in parameters present for caching see `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#ignoreDifferencesInParameters()` and `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#ignoredQueryParameters()`. `false` otherwise.

## Public methods

### alwaysVaryHeader

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
@Profile.ExperimentalUrlPrefetch
public static @NonNull NoVarySearchHeader alwaysVaryHeader()
```

Returns No-Vary-Search header that considers all differences in query parameters (i.e. presence and ordering) between otherwise identical URLs in cache matching.

### neverVaryExcept

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
@Profile.ExperimentalUrlPrefetch
public static @NonNull NoVarySearchHeader neverVaryExcept(
    boolean varyOnOrdering,
    @NonNull List<String> consideredQueryParameters
)
```

Returns No-Vary-Search header that doesn't consider differences in in query parameters present between otherwise identical URLs in cache matching with the exception of the ones provided in `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#consideredQueryParameters()`.

| Parameters |
|---|---|
| `boolean varyOnOrdering` | true if the ordering of query parameters should be considered in cache matching, false otherwise. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> consideredQueryParameters` | the query parameters to consider in cache matching. |

### neverVaryHeader

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
@Profile.ExperimentalUrlPrefetch
public static @NonNull NoVarySearchHeader neverVaryHeader()
```

Returns No-Vary-Search header that doesn't consider any differences in query parameters (i.e. presence or ordering) between otherwise identical URLs in cache matching.

### varyExcept

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
@Profile.ExperimentalUrlPrefetch
public static @NonNull NoVarySearchHeader varyExcept(
    boolean varyOnOrdering,
    @NonNull List<String> ignoredQueryParameters
)
```

Returns No-Vary-Search header that considers differences in in query parameters present between otherwise identical URLs in cache matching with the exception of the ones provided in `https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader#ignoredQueryParameters()`.

| Parameters |
|---|---|
| `boolean varyOnOrdering` | true if the ordering of query parameters should be considered in cache matching, false otherwise. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/String.html> ignoredQueryParameters` | the query parameters to ignore in cache matching. |