1
0
mirror of https://github.com/fafhrd91/actix-web synced 2025-01-19 22:24:40 +01:00
actix-web/actix_web/http/header/constant.IF_MATCH.html

25 lines
4.5 KiB
HTML
Raw Normal View History

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Makes a request conditional based on the E-Tag."><title>IF_MATCH in actix_web::http::header - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="actix_web" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (bdbbb6c6a 2024-05-26)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="icon" href="https://actix.rs/favicon.ico"></head><body class="rustdoc constant"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="../../../actix_web/index.html"><img src="https://actix.rs/img/logo.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../../actix_web/index.html"><img src="https://actix.rs/img/logo.png" alt="logo"></a><h2><a href="../../../actix_web/index.html">actix_web</a><span class="version">4.6.0</span></h2></div><div class="sidebar-elems"><h2><a href="index.html">In actix_web::http::header</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Constant <a href="../../index.html">actix_web</a>::<wbr><a href="../index.html">http</a>::<wbr><a href="index.html">header</a>::<wbr><a class="constant" href="#">IF_MATCH</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="https://docs.rs/http/0.2.11/src/http/header/name.rs.html#156-987">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub const IF_MATCH: <a class="struct" href="struct.HeaderName.html" title="struct actix_web::http::header::HeaderName">HeaderName</a>;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Makes a request conditional based on the E-Tag.</p>
<p>For GET and HEAD methods, the server will send back the requested
resource only if it matches one of the listed ETags. For PUT and other
non-safe methods, it will only upload the resource in this case.</p>
<p>The comparison with the stored ETag uses the strong comparison
algorithm, meaning two files are considered identical byte to byte only.
This is weakened when the W/ prefix is used in front of the ETag.</p>
<p>There are two common use cases:</p>
<ul>
<li>
<p>For GET and HEAD methods, used in combination with an Range header, it
can guarantee that the new ranges requested comes from the same resource
than the previous one. If it doesnt match, then a 416 (Range Not
Satisfiable) response is returned.</p>
</li>
<li>
<p>For other methods, and in particular for PUT, If-Match can be used to
prevent the lost update problem. It can check if the modification of a
resource that the user wants to upload will not override another change
that has been done since the original resource was fetched. If the
request cannot be fulfilled, the 412 (Precondition Failed) response is
returned.</p>
</li>
</ul>
</div></details></section></div></main></body></html>