Skip to content

Commit 31f5df1

Browse files
committed
SEARCH slides
1 parent 926a041 commit 31f5df1

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

Diff for: ietf93/ietf-93-httpbis-search.pdf

67.3 KB
Binary file not shown.

Diff for: ietf93/ietf-93-httpbis-search.xhtml

+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
<!DOCTYPE html
2+
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3+
<html xmlns="http://www.w3.org/1999/xhtml">
4+
<head>
5+
<title>IETF 93 - SEARCH method</title>
6+
<style type="text/css">
7+
body {
8+
color: black;
9+
font-family: cambria, helvetica, arial, sans-serif;
10+
font-size: 18pt;
11+
}
12+
h1 {
13+
font-size: 36pt;
14+
}
15+
li {
16+
margin-top: 0.5em;
17+
}
18+
q {
19+
font-style: italic;
20+
}
21+
.break {
22+
page-break-before: always;
23+
}
24+
@page {
25+
size: a4 landscape;
26+
}
27+
@page {
28+
@bottom-left {
29+
content: "Julian Reschke, greenbytes";
30+
}
31+
@bottom-right {
32+
content: counter(page);
33+
}
34+
@top-center {
35+
content: "IETF 93 - SEARCH method";
36+
}
37+
}
38+
</style>
39+
</head>
40+
<body>
41+
<h1>IETF 93 - SEARCH method</h1>
42+
<p>
43+
<a href="mailto:[email protected]">Julian Reschke</a>, greenbytes
44+
</p>
45+
46+
<h2 class="break">Why?</h2>
47+
<p>
48+
One of the most FAQs on StackOverflow is: can I send a GET request
49+
with a payload?
50+
</p>
51+
<p>
52+
We should have material that explains why GET with body doesn't work, and
53+
what the alternatives are.
54+
</p>
55+
56+
<h2 class="break">Proposal:</h2>
57+
<p>
58+
Explain the situation:
59+
</p>
60+
<ul>
61+
<li>
62+
Bookmarkability/Cacheability
63+
</li>
64+
<li>
65+
Drawbacks of using GET: URIs might leak more frequently than payloads (log files, Referer), some components might fail for long URIs
66+
</li>
67+
<li>
68+
Drawbacks of using POST: not safe, thus not repeatable without knowig the semantics of the request
69+
</li>
70+
<li>
71+
Explore Content-Location, making the GET-table resource discoverable
72+
</li>
73+
<li>
74+
Can URI templates help?
75+
</li>
76+
</ul>
77+
78+
<h2 class="break">Alternatives to GET and POST</h2>
79+
<ul>
80+
<li>Use an HTTP method that is defined to support a request payload <b>and</b>
81+
is safe.</li>
82+
<li>The method registry already contains three candidates: PROPFIND,
83+
REPORT, and SEARCH; all of which defined for WebDAV.
84+
</li>
85+
<li>There is existing code out there which knows about them being safe,
86+
so it makes sense to use one of these. It also avoids using
87+
yet another method name.
88+
</li>
89+
<li>The most generic of these is SEARCH; we could un-tangle it from
90+
WebDAV (without breaking existing uses) by allowing any media type
91+
as payload (as in PATCH), and open up the response format as well.
92+
</li>
93+
</ul>
94+
95+
<h2 class="break">Specifically...:</h2>
96+
<ul>
97+
<li>Make it as simple as possible.</li>
98+
<li>Format discovery using Accept-Search response header field (mirrors PATCH).</li>
99+
<li>Discuss concrete formats in separate specs.</li>
100+
<li>Explore ways to make the response to SEARCH GET-table and to leverage
101+
URI templates so clients can directly construct GET requests once they know about the URI format.</li>
102+
</ul>
103+
104+
<h2 class="break">Further reading:</h2>
105+
<ul>
106+
<li><a href="https://tools.ietf.org/html/draft-snell-search-method">draft-snell-search-method</a></li>
107+
<li><a href="https://tools.ietf.org/html/draft-hunt-scim-search">draft-hunt-scim-search</a></li>
108+
<li><a href="http://greenbytes.de/tech/webdav/rfc5323.html">RFC 5323: Web Distributed Authoring and Versioning (WebDAV) SEARCH</a></li>
109+
</ul>
110+
111+
</body>
112+
</html>

0 commit comments

Comments
 (0)