You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bu...@apache.org on 2010/11/05 00:44:59 UTC

svn commit: r778713 [2/5] - in /websites/staging/trafficserver/trunk/content: ./ docs/ docs/trunk/ docs/trunk/sdk/

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaderFunctions.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaderFunctions.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaderFunctions.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaderFunctions.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,700 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      <p><a href="INKMBufferDestroy">Prev</a> - INKMBufferDestroy
+URL Functions - <a href="URLFunctions">Next</a></p>
+<h3 id="http_header_functions">HTTP Header Functions</h3>
+<p>The HTTP header functions are listed below: ****</p>
+<ul>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrClone">INKHttpHdrClone</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrCopy">INKHttpHdrCopy</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrCreate">INKHttpHdrCreate</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrDestroy">INKHttpHdrDestroy</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrLengthGet">INKHttpHdrLengthGet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrMethodGet">INKHttpHdrMethodGet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrMethodSet">INKHttpHdrMethodSet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrPrint">INKHttpHdrPrint</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrReasonGet">INKHttpHdrReasonGet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrReasonLookup">INKHttpHdrReasonLookup</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrReasonSet">INKHttpHdrReasonSet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrStatusGet">INKHttpHdrStatusGet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrStatusSet">INKHttpHdrStatusSet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrTypeGet">INKHttpHdrTypeGet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrTypeSet">INKHttpHdrTypeSet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrUrlGet">INKHttpHdrUrlGet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrUrlSet">INKHttpHdrUrlSet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrVersionGet">INKHttpHdrVersionGet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrVersionSet">INKHttpHdrVersionSet</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpParserClear">INKHttpParserClear</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpParserCreate">INKHttpParserCreate</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpParserDestroy">INKHttpParserDestroy</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrParseReq">INKHttpHdrParseReq</a></li>
+<li><a href="HTTPHeaderFunctions#INKHttpHdrParseResp">INKHttpHdrParseResp</a></li>
+</ul>
+<h4 id="inkhttphdrclone">INKHttpHdrClone</h4>
+<p>Copies an HTTP header to a marshal buffer and returns the <code>INKMLoc</code>
+location of the copied header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKMLoc INKHttpHdrClone (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;dest_bufp</code>,
+    INKMBuffer <em><code>src_bufp</code></em>, INKMLoc <em><code>src_hdr</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Copies the contents of the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;src_hdr</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;src_bufp</code> to the marshal buffer
+    located at <code>&lt;em class="replaceable"&gt;&lt;code&gt;dest_bufp</code>. If the HTTP
+    header located at the <code>&lt;em class="replaceable"&gt;&lt;code&gt;src_hdr</code> is an
+    HTTP request header, then make sure that it has a valid <em>method</em>,
+    <em>url</em>, <em>protocol</em>, and <em>version</em>. If the HTTP header located at the
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;src_hdr</code> is a HTTP response header,
+    then make sure that it has a valid <em>protocol</em>, <em>version</em>, <em>status</em>,
+    and <em>reason</em>.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+
+<span class="n">Release</span> <span class="n">the</span> <span class="n">returned</span> <span class="n">handle</span> <span class="n">with</span> <span class="n">a</span> <span class="n">call</span> <span class="n">to</span> <span class="sb">`INKHandleMLocRelease`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ Returns the <code>INKMLoc</code> location of the copied header.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR_PTR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrcopy">INKHttpHdrCopy</h4>
+<p>Copies an HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpHdrCopy (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;dest_bufp</code>,
+    INKMLoc <em><code>dest_hdr_loc</code></em>, INKMBuffer <em><code>src_bufp</code></em>, INKMLoc
+    <em><code>src_hdr_loc</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Copies the contents of the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;src_hdr_loc</code> within the marshal
+    buffer <code>&lt;em class="replaceable"&gt;&lt;code&gt;src_bufp</code> to the HTTP header
+    located at <code>&lt;em class="replaceable"&gt;&lt;code&gt;dest_hdr_loc</code> within the
+    marshal buffer <code>&lt;em class="replaceable"&gt;&lt;code&gt;dest_bufp</code>.
+    <code>INKHttpHdrCopy</code> works correctly even if
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;src_bufp</code> and
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;dest_bufp</code> point to different
+    marshal buffers. Make sure that the destination HTTP header exists
+    (has been created) before copying into it. <code>INKHttpHdrCopy</code>
+    automatically makes sure the types for the source and destination
+    HTTP headers match; if the destination type is not equal to the
+    source type, then <code>INKHttpHdrCopy</code> calls <code>INKHttpHdrTypeSet</code>. Do
+    not call <code>INKHttpHdrTypeSet</code> on the destination header after using
+    <code>INKHttpHdrCopy</code>.</p>
+<div class="codehilite"><pre>If it is a transaction header, then call after
+`READ_REQUEST_HDR_HOOK`.
+
+![[Note]](images/docbook/note.png)
+Note
+`INKHttpHdrCopy` appends the port number to the domain of the URL
+portion of the header. For example,
+`<span class="nt">&lt;u&gt;</span>http://www.dianes-goanaut.com<span class="nt">&lt;/u&gt;</span>` appears as
+`<span class="nt">&lt;u&gt;</span>http://www.dianes-goanaut.com:80/<span class="nt">&lt;/u&gt;</span>` in the destination
+buffer.
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if successful.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrcreate">INKHttpHdrCreate</h4>
+<p>Creates a new HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKMLoc INKHttpHdrCreate (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>)</p>
+<p><strong>Description</strong>
+  ~ Creates a new HTTP header with the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. When newly-created, the HTTP
+    header is assigned an <code>INKHttpType</code> value of
+    <code>INK_HTTP_TYPE_UNKNOWN</code>. You can change the type after creating the
+    header using <code>INKHttpHdrTypeSet</code>, but you can only change the type
+    once. You cannot modify the type after setting it.</p>
+<div class="codehilite"><pre><span class="n">Release</span> <span class="n">with</span> <span class="n">a</span> <span class="n">call</span> <span class="n">to</span> <span class="sb">`INKHandleMLocRelease`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ A pointer to the new HTTP header.</p>
+<h4 id="inkhttphdrdestroy">INKHttpHdrDestroy</h4>
+<p>Destroys an HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpHdrDestroy (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Destroys the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>.</p>
+<div class="codehilite"><pre><span class="o">!</span><span class="p">[[</span><span class="n">Caution</span><span class="p">]](</span><span class="n">images</span><span class="sr">/docbook/c</span><span class="n">aution</span><span class="o">.</span><span class="n">png</span><span class="p">)</span>
+<span class="n">Caution</span>
+<span class="n">Do</span> <span class="ow">not</span> <span class="n">forget</span> <span class="n">to</span> <span class="k">use</span> <span class="sb">`INKHandleMLocRelease`</span> <span class="n">to</span> <span class="n">release</span> <span class="n">the</span> <span class="n">handle</span>
+<span class="sb">`&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;hdr_loc`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if the operation completes successfully.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR_PTR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrlengthget">INKHttpHdrLengthGet</h4>
+<p>Calculates the length of an HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>int INKHttpHdrLengthGet (INKMBuffer bufp, INKMLoc                 &lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code>)</p>
+<p><strong>Description</strong>
+  ~ Calculates the length of the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code> if it was returned as a
+    string. This is the length of the HTTP header in its unparsed form
+    and is also the number of bytes that will be added to the IO buffer
+    by a call to <code>INKHttpHdrPrint</code>.</p>
+<div class="codehilite"><pre><span class="n">The</span> <span class="n">header</span> <span class="n">could</span> <span class="n">be</span> <span class="n">a</span> <span class="n">request</span> <span class="n">header</span><span class="p">,</span> <span class="n">response</span> <span class="n">header</span><span class="p">,</span> <span class="ow">or</span> <span class="n">a</span>
+<span class="n">standalone</span> <span class="n">header</span> <span class="n">that</span> <span class="n">you</span> <span class="n">have</span> <span class="n">created</span><span class="o">.</span> <span class="n">Be</span> <span class="n">sure</span> <span class="n">to</span> <span class="n">call</span> <span class="n">this</span>
+<span class="n">function</span> <span class="n">appropriately</span><span class="o">.</span> <span class="n">For</span> <span class="n">example:</span> <span class="k">if</span> <span class="n">you</span> <span class="n">want</span> <span class="n">the</span> <span class="nb">length</span> <span class="n">of</span> <span class="n">a</span>
+<span class="n">request</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">this</span> <span class="n">function</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ The length of the specified HTTP header.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrmethodget">INKHttpHdrMethodGet</h4>
+<p>Gets the method portion of an HTTP request header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>const char* INKHttpHdrMethodGet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>, int *<em><code>length</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Retrieves the method from the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. The length of the returned
+    string is placed in the length argument. If length is <code>NULL</code>, then
+    no attempt is made to dereference it.</p>
+<div class="codehilite"><pre><span class="n">It</span> <span class="n">is</span> <span class="n">an</span> <span class="n">error</span> <span class="n">to</span> <span class="n">try</span> <span class="n">to</span> <span class="n">retrieve</span> <span class="n">the</span> <span class="n">method</span> <span class="n">from</span> <span class="n">an</span> <span class="n">HTTP</span> <span class="n">header</span>
+<span class="n">that</span> <span class="n">is</span> <span class="ow">not</span> <span class="n">of</span> <span class="n">type</span> <span class="sb">`INK_HTTP_TYPE_REQUEST`</span><span class="o">.</span>
+
+<span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+
+<span class="n">Release</span> <span class="n">with</span> <span class="n">a</span> <span class="n">call</span> <span class="n">to</span> <span class="sb">`INKHandleStringRelease`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ A pointer to the method portion of the specified HTTP request
+    header.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR_PTR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrmethodset">INKHttpHdrMethodSet</h4>
+<p>Sets the HTTP method.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpHdrMethodSet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>, const char *<em><code>value</code></em>, int <em><code>length</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Sets the method in the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. If
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;length</code> is -1, then it is assumed
+    the value is null-terminated. Otherwise, the length of the string
+    value is taken to be length. The string is copied to within
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>, so it is okay to modify or
+    delete value after calling <code>INKHttpHdrMethodSet</code>. It is an error to
+    try to set the method in an HTTP header that is not of type
+    <code>INK_HTTP_TYPE_REQUEST</code>.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if successful.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrprint">INKHttpHdrPrint</h4>
+<p>Prints the HTTP header to an IO buffer.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpHdrPrint (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>, INKIOBuffer <em><code>iobufp</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Formats the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code> into the IO buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;iobufp</code>. See IO buffers for
+    information about allocating an IO buffer and retrieving data from
+    within one.</p>
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if the operation completes successfully.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrreasonget">INKHttpHdrReasonGet</h4>
+<p>Gets the reason phrase from an HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>const char* INKHttpHdrReasonGet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>, int *<em><code>length</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Retrieves the reason phrase from the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. The length of the returned
+    string is placed in the <code>&lt;em class="replaceable"&gt;&lt;code&gt;length</code>
+    argument. It is an error to try to retrieve the reason phrase from
+    an HTTP header that is not of type <code>INK_HTTP_TYPE_RESPONSE</code>.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+
+<span class="o">!</span><span class="p">[[</span><span class="n">Note</span><span class="p">]](</span><span class="n">images</span><span class="sr">/docbook/</span><span class="n">note</span><span class="o">.</span><span class="n">png</span><span class="p">)</span>
+<span class="n">Note</span>
+<span class="n">The</span> <span class="n">returned</span> <span class="n">string</span> <span class="n">is</span> <span class="ow">not</span> <span class="n">guaranteed</span> <span class="n">to</span> <span class="n">be</span> <span class="n">null</span><span class="o">-</span><span class="n">terminated</span><span class="o">.</span>
+
+<span class="n">Release</span> <span class="n">with</span> <span class="n">a</span> <span class="n">call</span> <span class="n">to</span> <span class="sb">`INKHandleStringRelease`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ Pointer to the reason phrase in the specified HTTP header.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR_PTR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrreasonlookup">INKHttpHdrReasonLookup</h4>
+<p>Provides the default reason phrase for a specified Traffic Server
+HTTP status code.</p>
+<p><strong>Prototype</strong>
+  ~ <code>const char* INKHttpHdrReasonLookup (INKHttpStatus                 &lt;em class="replaceable"&gt;&lt;code&gt;status</code>)</p>
+<p><strong>Description</strong>
+  ~ Returns the default reason phrase for the status code
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;status</code>.</p>
+<div class="codehilite"><pre><span class="sb">`INKHttpHdrReasonLookup`</span> <span class="n">returns</span> <span class="n">a</span> <span class="n">string</span> <span class="n">that</span> <span class="n">is</span> <span class="n">null</span><span class="o">-</span><span class="n">terminated</span><span class="o">.</span>
+<span class="n">It</span> <span class="n">should</span> <span class="ow">not</span> <span class="n">be</span> <span class="n">freed</span> <span class="ow">or</span> <span class="n">released</span><span class="p">;</span> <span class="n">it</span><span class="err">&#39;</span><span class="n">s</span> <span class="n">a</span> <span class="n">global</span> <span class="n">shared</span> <span class="n">value</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ Pointer to the default reason phrase for the specified Traffic
+    Server status code.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR_PTR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrreasonset">INKHttpHdrReasonSet</h4>
+<p>Sets the reason phrase in an HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpHdrReasonSet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>, const char *<em><code>value</code></em>, int <em><code>length</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Sets the reason phrase in the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. If
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;length</code> is -1, then it is assumed
+    that <code>&lt;em class="replaceable"&gt;&lt;code&gt;value</code> is null-terminated.
+    Otherwise, the length of the string value is taken to be
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;length</code>. The string is copied to
+    within <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>, so it is okay to
+    modify or delete <code>&lt;em class="replaceable"&gt;&lt;code&gt;value</code> after
+    calling <code>INKHttpHdrReasonSet</code>. It is an error to try to set the
+    reason phrase in an HTTP header that is not of type
+    <code>INK_HTTP_TYPE_RESPONSE</code>.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if the operation completes successfully.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">the</span> <span class="n">operation</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">complete</span> <span class="n">successfully</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrstatusget">INKHttpHdrStatusGet</h4>
+<p>Retrieves the status code from an HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKHttpStatus INKHttpHdrStatusGet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Retrieves the status code from the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. It is an error to try and
+    retrieve the status code from an HTTP header that is not of type
+    <code>INK_HTTP_TYPE_RESPONSE</code>. <code>INKHttpStatus</code> is an enumerated type.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ The status code from the specified HTTP header.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Example</strong>
+  ~ Values of <code>INKHttpStatus</code> are the following:</p>
+<div class="codehilite"><pre>    <span class="n">typedef</span> <span class="n">enum</span>
+    <span class="p">{</span>
+        <span class="n">INK_HTTP_STATUS_NONE</span>                          <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
+
+        <span class="n">INK_HTTP_STATUS_CONTINUE</span>                      <span class="o">=</span> <span class="mi">100</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_SWITCHING_PROTOCOL</span>            <span class="o">=</span> <span class="mi">101</span><span class="p">,</span>
+
+        <span class="n">INK_HTTP_STATUS_OK</span>                            <span class="o">=</span> <span class="mi">200</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_CREATED</span>                       <span class="o">=</span> <span class="mi">201</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_ACCEPTED</span>                      <span class="o">=</span> <span class="mi">202</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION</span> <span class="o">=</span> <span class="mi">203</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_NO_CONTENT</span>                    <span class="o">=</span> <span class="mi">204</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_RESET_CONTENT</span>                 <span class="o">=</span> <span class="mi">205</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_PARTIAL_CONTENT</span>               <span class="o">=</span> <span class="mi">206</span><span class="p">,</span>
+
+        <span class="n">INK_HTTP_STATUS_MULTIPLE_CHOICES</span>              <span class="o">=</span> <span class="mi">300</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_MOVED_PERMANENTLY</span>             <span class="o">=</span> <span class="mi">301</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_MOVED_TEMPORARILY</span>             <span class="o">=</span> <span class="mi">302</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_SEE_OTHER</span>                     <span class="o">=</span> <span class="mi">303</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_NOT_MODIFIED</span>                  <span class="o">=</span> <span class="mi">304</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_USE_PROXY</span>                     <span class="o">=</span> <span class="mi">305</span><span class="p">,</span>
+
+        <span class="n">INK_HTTP_STATUS_BAD_REQUEST</span>                   <span class="o">=</span> <span class="mi">400</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_UNAUTHORIZED</span>                  <span class="o">=</span> <span class="mi">401</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_PAYMENT_REQUIRED</span>              <span class="o">=</span> <span class="mi">402</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_FORBIDDEN</span>                     <span class="o">=</span> <span class="mi">403</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_NOT_FOUND</span>                     <span class="o">=</span> <span class="mi">404</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_METHOD_NOT_ALLOWED</span>            <span class="o">=</span> <span class="mi">405</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_NOT_ACCEPTABLE</span>                <span class="o">=</span> <span class="mi">406</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED</span> <span class="o">=</span> <span class="mi">407</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_REQUEST_TIMEOUT</span>               <span class="o">=</span> <span class="mi">408</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_CONFLICT</span>                      <span class="o">=</span> <span class="mi">409</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_GONE</span>                          <span class="o">=</span> <span class="mi">410</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_LENGTH_REQUIRED</span>               <span class="o">=</span> <span class="mi">411</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_PRECONDITION_FAILED</span>           <span class="o">=</span> <span class="mi">412</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_REQUEST_ENTITY_TOO_LARGE</span>      <span class="o">=</span> <span class="mi">413</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_REQUEST_URI_TOO_LONG</span>          <span class="o">=</span> <span class="mi">414</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE</span>        <span class="o">=</span> <span class="mi">415</span><span class="p">,</span>
+
+        <span class="n">INK_HTTP_STATUS_INTERNAL_SERVER_ERROR</span>         <span class="o">=</span> <span class="mi">500</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_NOT_IMPLEMENTED</span>               <span class="o">=</span> <span class="mi">501</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_BAD_GATEWAY</span>                   <span class="o">=</span> <span class="mi">502</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_SERVICE_UNAVAILABLE</span>           <span class="o">=</span> <span class="mi">503</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_GATEWAY_TIMEOUT</span>               <span class="o">=</span> <span class="mi">504</span><span class="p">,</span>
+        <span class="n">INK_HTTP_STATUS_HTTPVER_NOT_SUPPORTED</span>         <span class="o">=</span> <span class="mi">505</span>
+    <span class="p">}</span> <span class="n">INKHttpStatus</span><span class="p">;</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrstatusset">INKHttpHdrStatusSet</h4>
+<p>Sets the status code within an HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpHdrStatusSet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>, INKHttpStatus <em><code>status</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Sets the status code in the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. It is an error to try and set
+    the <code>&lt;em class="replaceable"&gt;&lt;code&gt;status</code> code in an HTTP header
+    that is not of type <code>INK_HTTP_TYPE_RESPONSE</code>.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if successful.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrtypeget">INKHttpHdrTypeGet</h4>
+<p>Retrieves the HTTP header type.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKHttpType INKHttpHdrTypeGet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Retrieves the type of the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. <code>INKHttpType</code> is an
+    enumerated type.</p>
+<div class="codehilite"><pre>    <span class="n">typedef</span> <span class="n">enum</span>
+    <span class="p">{</span>
+        <span class="n">INK_HTTP_TYPE_UNKNOWN</span><span class="p">,</span>
+        <span class="n">INK_HTTP_TYPE_REQUEST</span><span class="p">,</span>
+        <span class="n">INK_HTTP_TYPE_RESPONSE</span>
+    <span class="p">}</span> <span class="n">INKHttpTyp</span>
+</pre></div>
+
+
+<p>~  
+<strong>Returns</strong>
+  ~ The type of the specified HTTP header.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">there</span> <span class="n">is</span> <span class="n">error</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrtypeset">INKHttpHdrTypeSet</h4>
+<p>Sets the HTTP header type.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpHdrTypeSet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>, INKHttpType <em><code>type</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Sets the type of the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code> to
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;type</code>. Use <code>INKHttpHdrTypeSet</code> only
+    after you create an HTTP header. The <code>INKHttpHdrCreate</code> function
+    automatically assigns the new header a type of
+    <code>INK_HTTP_TYPE_UNKNOWN</code>. You would only use <code>INKHttpHdrTypeSet</code> to
+    change the type of a header from <code>INK_HTTP_TYPE_UNKNOWN</code> to either
+    <code>INK_HTTP_TYPE_REQUEST</code> or <code>INK_HTTP_TYPE_RESPONSE.</code> You can only
+    change the type once and you cannot modify the type after setting
+    it.</p>
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if successful.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrurlget">INKHttpHdrUrlGet</h4>
+<p>Gets the location for the URL portion of an HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKMLoc INKHttpHdrUrlGet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>req_hdr_loc</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Retrieves the URL from the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;req_hdr_loc</code> within the marshal
+    buffer <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. It is an error to try
+    to retrieve the URL from an HTTP header that is not of type
+    <code>INK_HTTP_TYPE_REQUEST</code>.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+
+<span class="n">Release</span> <span class="n">with</span> <span class="n">a</span> <span class="n">call</span> <span class="n">to</span> <span class="sb">`INKHandleMLocRelease`</span><span class="o">.</span> <span class="n">When</span> <span class="n">you</span> <span class="n">release</span> <span class="n">the</span>
+<span class="n">handle</span> <span class="n">created</span> <span class="n">by</span> <span class="sb">`INKHttpHdrUrlGet`</span><span class="p">,</span> <span class="n">the</span> <span class="n">parent</span> <span class="n">should</span> <span class="n">be</span>
+<span class="sb">`&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;req_hdr_loc`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ The URL from the specified HTTP header.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR_PTR`</span> <span class="k">if</span> <span class="n">there</span> <span class="n">is</span> <span class="n">an</span> <span class="n">error</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrurlset">INKHttpHdrUrlSet</h4>
+<p>Sets a URL location within an HTTP request header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpHdrUrlSet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>, INKMLoc <em><code>url</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Sets the URL in the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. It is an error to try to set
+    the URL in an HTTP header that is not of type
+    <code>INK_HTTP_TYPE_REQUEST</code>.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if successful.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrversionget">INKHttpHdrVersionGet</h4>
+<p>Retrieves the HTTP version of the specified HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>int INKHttpHdrVersionGet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Retrieves the version from the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. An HTTP version is composed
+    of a major and a minor version. Traffic Server encodes the major
+    version in the upper 16 bits of the returned integer and the minor
+    version in the lower 16 bits. The macros <code>INK_HTTP_MAJOR``(ver)</code>and
+    <code>INK_HTTP_MINOR``(ver)</code>can be used to extract the major and minor
+    versions, respectively.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ The HTTP version from the specified HTTP header.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">there</span> <span class="n">is</span> <span class="n">an</span> <span class="n">error</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrversionset">INKHttpHdrVersionSet</h4>
+<p>Sets the HTTP version of the specified HTTP header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpHdrVersionSet (INKMBuffer                 &lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>,
+    INKMLoc <em><code>hdr_loc</code></em>, int <em><code>ver</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Sets the version in the HTTP header located at
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> within the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code> to
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;ver</code>. An HTTP version is composed of
+    a major and a minor version. Traffic Server encodes the major
+    version in the upper 16 bits of the returned integer and the minor
+    version in the lower 16 bits. The macro <code>INK_HTTP_VERSION</code>
+    <code>(maj, min)</code>can be used to encode a major and minor version into
+    the single integer expected by <code>INKHttpHdrVersionSet</code>.</p>
+<div class="codehilite"><pre><span class="n">If</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="p">,</span> <span class="k">then</span> <span class="n">call</span> <span class="n">after</span>
+<span class="sb">`READ_REQUEST_HDR_HOOK`</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if the operation completes successfully.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">the</span> <span class="n">operation</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">complete</span> <span class="n">successfully</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttpparserclear">INKHttpParserClear</h4>
+<p>Clears an HTTP parser.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpParserClear (INKHttpParser                 &lt;em class="replaceable"&gt;&lt;code&gt;parser</code>)</p>
+<p><strong>Description</strong>
+  ~ Clears the specified HTTP
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;parser</code> so it can be used again.</p>
+<div class="codehilite"><pre><span class="n">Call</span> <span class="n">after</span> <span class="sb">`READ_REQUEST_HDR_HOOK`</span> <span class="k">if</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if successful.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttpparsercreate">INKHttpParserCreate</h4>
+<p>Creates a parser for HTTP headers.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKHttpParser INKHttpParserCreate                 (void)</code></p>
+<p><strong>Description</strong>
+  ~ Creates an HTTP parser. The parser's data structure contains
+    information about the header being parsed. A single HTTP parser can
+    be used multiple times, though not simultaneously. Before being
+    used again, the parser must be cleared by calling
+    <code>INKHttpParserClear</code>.</p>
+<p><strong>Returns</strong>
+  ~ Parser structure for HTTP headers.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR_PTR`</span> <span class="k">if</span> <span class="n">an</span> <span class="n">error</span> <span class="n">occurs</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttpparserdestroy">INKHttpParserDestroy</h4>
+<p>Destroys an HTTP parser.</p>
+<p><strong>Prototype</strong>
+  ~ <code>INKReturnCode INKHttpParserDestroy (INKHttpParser                 &lt;em class="replaceable"&gt;&lt;code&gt;parser</code>)</p>
+<p><strong>Description</strong>
+  ~ Destroys the specified HTTP
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;parser</code> and frees the associated
+    memory.</p>
+<p><strong>Returns</strong>
+  ~ <code>INK_SUCCESS</code> if the operation completes successfully.</p>
+<div class="codehilite"><pre><span class="sb">`INK_ERROR`</span> <span class="k">if</span> <span class="n">the</span> <span class="n">operation</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">complete</span> <span class="n">successfully</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrparsereq">INKHttpHdrParseReq</h4>
+<p>Parses an HTTP request header.</p>
+<p><strong>Prototype</strong>
+  ~ <code>int INKHttpHdrParseReq (INKHttpParser                 &lt;em class="replaceable"&gt;&lt;code&gt;parser</code>,
+    INKMBuffer <em><code>bufp</code></em>, INKMLoc <em><code>hdr_loc</code></em>, const char **<em><code>start</code></em>,
+    const char *<em><code>end</code></em>)</p>
+<p><strong>Description</strong>
+  ~ Parses an HTTP request header. The HTTP header
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> must already be created and
+    must reside inside the marshal buffer
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. The
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;start</code> argument points to the
+    current position of the string buffer being parsed and the
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;end</code> argument points to one byte
+    after the end of the buffer to be parsed. On return,
+    <code>&lt;em class="replaceable"&gt;&lt;code&gt;start</code> is modified to point past the
+    last character parsed.</p>
+<div class="codehilite"><pre><span class="n">It</span> <span class="n">is</span> <span class="n">possible</span> <span class="n">to</span> <span class="n">parse</span> <span class="n">an</span> <span class="n">HTTP</span> <span class="n">request</span> <span class="n">header</span> <span class="n">a</span> <span class="n">single</span> <span class="n">byte</span> <span class="n">at</span> <span class="n">a</span>
+<span class="nb">time</span> <span class="n">using</span> <span class="n">repeated</span> <span class="n">calls</span> <span class="n">to</span> <span class="sb">`INKHttpHdrParseReq`</span><span class="o">.</span> <span class="n">As</span> <span class="n">long</span> <span class="n">as</span> <span class="n">an</span>
+<span class="n">error</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">occur</span><span class="p">,</span> <span class="n">the</span> <span class="sb">`INKHttpHdrParseReq`</span> <span class="n">function</span> <span class="n">will</span>
+<span class="n">consume</span> <span class="n">that</span> <span class="n">single</span> <span class="n">byte</span> <span class="ow">and</span> <span class="n">ask</span> <span class="k">for</span> <span class="n">more</span><span class="o">.</span>
+
+<span class="n">Call</span> <span class="n">after</span> <span class="sb">`READ_REQUEST_HDR_HOOK`</span> <span class="k">if</span> <span class="n">it</span> <span class="n">is</span> <span class="n">a</span> <span class="n">transaction</span> <span class="n">header</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Returns</strong>
+  ~ <code>INK_PARSE_ERROR</code> is returned if there is an error.</p>
+<div class="codehilite"><pre><span class="sb">`INK_PARSE_DONE`</span> <span class="n">is</span> <span class="n">returned</span> <span class="n">when</span> <span class="n">a</span> <span class="sb">`\r\n\r\n`</span><span class="n">pattern</span> <span class="n">is</span>
+<span class="n">encountered</span><span class="p">,</span> <span class="n">indicating</span> <span class="n">the</span> <span class="n">end</span> <span class="n">of</span> <span class="n">the</span> <span class="n">header</span><span class="o">.</span>
+
+<span class="sb">`INK_PARSE_CONT`</span> <span class="n">is</span> <span class="n">returned</span> <span class="k">if</span> <span class="n">parsing</span> <span class="n">of</span> <span class="n">the</span> <span class="n">header</span> <span class="n">stopped</span>
+<span class="n">because</span> <span class="n">the</span> <span class="n">end</span> <span class="n">of</span> <span class="n">the</span> <span class="n">buffer</span> <span class="n">was</span> <span class="n">reached</span><span class="o">.</span>
+</pre></div>
+
+
+<h4 id="inkhttphdrparseresp">INKHttpHdrParseResp</h4>
+<p>Parses an HTTP response header.</p>
+<p><strong>Prototype</strong>
+<code>int INKHttpHdrParseResp (INKHttpParser                 &lt;em class="replaceable"&gt;&lt;code&gt;parser</code>,
+INKMBuffer <em><code>bufp</code></em>, INKMLoc <em><code>hdr_loc</code></em>, const char **<em><code>start</code></em>,
+const char *<em><code>end</code></em>)</p>
+<p><strong>Description</strong>
+Parses an HTTP response header. The HTTP header
+<code>&lt;em class="replaceable"&gt;&lt;code&gt;hdr_loc</code> must already be created and
+must reside inside the marshal buffer
+<code>&lt;em class="replaceable"&gt;&lt;code&gt;bufp</code>. The
+<code>&lt;em class="replaceable"&gt;&lt;code&gt;start</code> argument points to the
+current position of the string buffer being parsed and the
+<code>&lt;em class="replaceable"&gt;&lt;code&gt;end</code> argument points to one byte
+after the end of the buffer to be parsed. On return,
+<code>&lt;em class="replaceable"&gt;&lt;code&gt;start</code> is modified to point past the
+last character parsed.</p>
+<p>It is possible to parse an HTTP response header a single byte at a
+time using repeated calls to <code>INKHttpHdrParseResp</code>. As long as an
+error does not occur, the <code>INKHttpHdrParseResp</code> function consumes
+that single byte and asks for more.</p>
+<p>Call after <code>READ_RESPONSE_HDR_HOOK</code> if it is a transaction header.</p>
+<p><strong>Returns</strong>
+<code>INK_PARSE_ERROR</code> is returned if there is an error.</p>
+<p><code>INK_PARSE_DONE</code> is returned when a <code>\r\n\r\n</code> pattern is
+encountered, indicating the end of the header.</p>
+<p><code>INK_PARSE_CONT</code> is returned if parsing of the header stopped
+because the end of the buffer was reached</p>
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaders.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaders.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaders.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaders.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      <p><a href="Interface_ThreadFunctions">Prev</a> - Thread Functions
+Guide to Traffic Server HTTP Header System -
+<a href="GuideTSHTTPHdrSyst">Next</a></p>
+<h2 id="chapter_10_http_headers">Chapter 10. HTTP Headers</h2>
+<p>This chapter explains the functions used to manipulate HTTP
+headers.</p>
+<hr />
+<p><a href="HTTPHeaders#AboutHTTPHeaders" title="About HTTP Headers">About HTTP Headers</a>
+<a href="GuideTSHTTPHdrSyst" title="Guide to Traffic Server HTTP Header System">Guide to Traffic Server HTTP Header System</a>
+-   <a href="DuplicateMIMEFlds">Duplicate MIME Fields Are Not Coalesced</a>
+-   <a href="MIMEFldsBelongAssocMIMEHdr">MIME Fields Always Belong to an Associated MIME Header</a>
+-   <a href="RlsMarshalBufHandles">Release Marshal Buffer Handles</a>
+-   <a href="DeprecatedMarshBufFuncs">Deprecated Functions</a></p>
+<p><a href="MarshalBuffers" title="Marshal Buffers">Marshal Buffers</a>
+<a href="HTTPHeaders2" title="HTTP Headers">HTTP Headers</a>
+<a href="URLs" title="URLs">URLs</a>
+<a href="MIMEHeaders" title="MIME Headers">MIME Header</a></p>
+<h2 id="about_http_headers">About HTTP Headers</h2>
+<p>An <strong>HTTP message</strong> consists of the following:</p>
+<ul>
+<li>HTTP header</li>
+<li>body</li>
+<li>trailer</li>
+</ul>
+<p>The <strong>HTTP header</strong> consists of:</p>
+<ul>
+<li>A request or response line</li>
+<li>
+<ul>
+<li>
+<p>An HTTP <strong>request line</strong> contains a method, URL, and
+        version</p>
+</li>
+<li>
+<p>A <strong>response line</strong> contains a version, status code, and reason
+    phrase</p>
+</li>
+</ul>
+</li>
+<li>
+<p>A MIME header</p>
+</li>
+</ul>
+<p>A <strong>MIME header</strong>is comprised of zero or more MIME fields. A
+<strong>MIME field</strong> is composed of a field name, a colon, and (zero or
+more) field values. The values in a field are separated by commas.
+An HTTP header containing a request line is usually referred to as
+a <strong>request</strong>. The following example shows a typical request
+header.</p>
+<div class="codehilite"><pre><span class="n">GET</span> <span class="n">http:</span><span class="sr">//</span><span class="n">www</span><span class="o">.</span><span class="n">tiggerwigger</span><span class="o">.</span><span class="n">com</span><span class="sr">/ HTTP/</span><span class="mi">1</span><span class="o">.</span><span class="mi">0</span>
+<span class="n">Proxy</span><span class="o">-</span><span class="n">Connection:</span> <span class="n">Keep</span><span class="o">-</span><span class="n">Alive</span>
+<span class="n">User</span><span class="o">-</span><span class="n">Agent:</span> <span class="n">Mozilla</span><span class="o">/</span><span class="mi">5</span><span class="o">.</span><span class="mi">0</span> <span class="p">[</span><span class="n">en</span><span class="p">]</span> <span class="p">(</span><span class="n">X11</span><span class="p">;</span> <span class="n">I</span><span class="p">;</span> <span class="n">Linux</span> <span class="mi">2</span><span class="o">.</span><span class="mi">2</span><span class="o">.</span><span class="mi">3</span> <span class="n">i686</span><span class="p">)</span>
+<span class="n">Host:</span> <span class="n">www</span><span class="o">.</span><span class="n">tiggerwigger</span><span class="o">.</span><span class="n">com</span>
+<span class="n">Accept:</span> <span class="n">image</span><span class="sr">/gif, image/x</span><span class="o">-</span><span class="n">xbitmap</span><span class="p">,</span> <span class="n">image</span><span class="sr">/jpeg, image/</span><span class="n">pjpeg</span><span class="p">,</span> <span class="n">image</span><span class="sr">/png, */</span>
+<span class="o">*</span>
+
+<span class="n">Accept</span><span class="o">-</span><span class="n">Encoding:</span> <span class="n">gzip</span>
+<span class="n">Accept</span><span class="o">-</span><span class="n">Language:</span> <span class="n">en</span>
+<span class="n">Accept</span><span class="o">-</span><span class="n">Charset:</span> <span class="n">iso</span><span class="o">-</span><span class="mi">8859</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">utf</span><span class="o">-</span><span class="mi">8</span>
+</pre></div>
+
+
+<p>The <strong>response header</strong>for the above request might look like the
+following:</p>
+<div class="codehilite"><pre><span class="n">HTTP</span><span class="o">/</span><span class="mi">1</span><span class="o">.</span><span class="mi">0</span> <span class="mi">200</span> <span class="n">OK</span>
+<span class="n">Date:</span> <span class="n">Fri</span><span class="p">,</span> <span class="mi">13</span> <span class="n">Nov</span> <span class="mi">2009</span> <span class="mo">06</span><span class="p">:</span><span class="mi">57</span><span class="p">:</span><span class="mi">43</span> <span class="n">GMT</span>
+<span class="n">Content</span><span class="o">-</span><span class="n">Location:</span> <span class="n">http:</span><span class="sr">//</span><span class="n">locutus</span><span class="o">.</span><span class="n">tiggerwigger</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="nb">index</span><span class="o">.</span><span class="n">html</span>
+<span class="n">Etag:</span> <span class="s">&quot;07db14afa76be1:1074&quot;</span>
+<span class="n">Last</span><span class="o">-</span><span class="n">Modified:</span> <span class="n">Thu</span><span class="p">,</span> <span class="mo">05</span> <span class="n">Nov</span> <span class="mi">2009</span> <span class="mi">20</span><span class="p">:</span><span class="mo">01</span><span class="p">:</span><span class="mi">38</span> <span class="n">GMT</span>
+<span class="n">Content</span><span class="o">-</span><span class="n">Length:</span> <span class="mi">7931</span>
+<span class="n">Content</span><span class="o">-</span><span class="n">Type:</span> <span class="n">text</span><span class="o">/</span><span class="n">html</span>
+<span class="n">Server:</span> <span class="n">Microsoft</span><span class="o">-</span><span class="n">IIS</span><span class="o">/</span><span class="mi">4</span><span class="o">.</span><span class="mi">0</span>
+<span class="n">Age:</span> <span class="mi">922</span>
+<span class="n">Proxy</span><span class="o">-</span><span class="n">Connection:</span> <span class="nb">close</span>
+</pre></div>
+
+
+<p>The following figure illustrates an HTTP message with an expanded
+HTTP header.</p>
+<p><strong>Figure 10.1. HTTP Request/Response and Header Structure</strong></p>
+<p><img alt="HTTP Request/Response and Header Structure" src="images/http_header_struct.jpg" />
+The figure below shows example HTTP request and response headers.</p>
+<p><strong>Figure 10.2. Examples of HTTP Request and Response Headers</strong></p>
+<p><img alt="Examples of HTTP Request and Response Headers" src="images/http_headers.jpg" />
+The marshal buffer or <code>INKMBuffer</code> is a heap data structure that
+stores parsed URLs, MIME headers, and HTTP headers. You can
+allocate new objects out of marshal buffers and change the values
+within the marshal buffer. Whenever you manipulate an object, you
+must require the handle to the object (<code>INKMLoc</code>) and the marshal
+buffer containing the object (<code>INKMBuffer</code>).</p>
+<p><strong>Figure 10.3. Marshal Buffers and Header Locations</strong></p>
+<p><img alt="Marshal Buffers and Header Locations" src="images/marshall_buffers.jpg" />
+The figure above shows the following:</p>
+<ul>
+<li>
+<p>The marshal buffer containing the HTTP request, <code>reqest_bufp</code></p>
+</li>
+<li>
+<p><code>INKMLoc</code> location pointer for the HTTP header
+    (<code>http_hdr_loc</code>)</p>
+</li>
+<li>
+<p><code>INKMLoc</code> location pointer for the request URL (<code>url_loc</code>)</p>
+</li>
+<li>
+<p><code>INKMLoc</code> location pointers for the MIME header
+    (<code>mime_hdr_loc</code>)</p>
+</li>
+<li>
+<p><code>INKMLoc</code> location pointers for MIME fields (<code>fieldi_loc</code>)</p>
+</li>
+<li>
+<p><code>INKMLoc</code> location pointer for the next duplicate MIME field
+    (<code>next_dup_loc</code>)</p>
+</li>
+</ul>
+<p>The diagram also shows that an HTTP header contains pointers to the
+URL location and the MIME header location. You can obtain the URL
+location from an HTTP header using the function <code>INKHttpHdrUrlGet</code>.
+To work with MIME headers, you can pass either a MIME header
+location or an HTTP header location to MIME header functions . If
+you pass an HTTP header to a MIME header function, then the system
+locates the associated MIME header and executes the MIME header
+function on the MIME header location.</p>
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaders2.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaders2.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaders2.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHeaders2.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      <p><a href="MarshalBuffers">Prev</a> - Marshal Buffers
+URLs - <a href="URLs">Next</a></p>
+<h2 id="http_headers">HTTP Headers</h2>
+<p>The Traffic Server API HTTP header functions enable you to work
+with HTTP header data stored in marshal buffers.</p>
+<p>The HTTP header data structure is a parsed version of the HTTP
+header defined in the HTTP protocol specification. An HTTP header
+is composed of a request or response line followed by zero or more
+MIME fields. In fact, an HTTP header is a subclass of a MIME
+header; all of the MIME header routines operate on HTTP headers.</p>
+<p>An HTTP <strong>request line</strong> is composed of a method, a URL, and
+version. A <strong>response line</strong> is composed of a version, status code,
+and reason phrase. See
+<a href="HTTPHeaders#AboutHTTPHeaders" title="About HTTP Headers">About HTTP Headers</a>
+for additional details and examples.</p>
+<p>To facilitate fast comparisons and reduce storage size, Traffic
+Server defines several pre-allocated method names. These names
+correspond to the methods defined in the HTTP 1.1 specification</p>
+<p><strong>Pre-Allocated Method Names</strong>
+<strong>HTTP 1.1 Method</strong>
+<code>INK_HTTP_METHOD_CONNECT</code>
+"CONNECT"
+<code>INK_HTTP_METHOD_DELETE</code>
+"DELETE"
+<code>INK_HTTP_METHOD_GE</code>
+"GET"
+<code>INK_HTTP_METHOD_HEAD</code>
+"HEAD"
+<code>INK_HTTP_METHOD_ICP_QUERY</code>
+"ICP_QUERY"
+<code>INK_HTTP_METHOD_OPTIONS</code>
+"OPTIONS"
+<code>INK_HTTP_METHOD_POST</code>
+"POST"
+<code>INK_HTTP_METHOD_PURGE</code>
+"PURGE"
+<code>INK_HTTP_METHOD_PUT</code>
+"PUT"
+<code>INK_HTTP_METHOD_TRACE</code>
+"TRACE"
+ </p>
+<p>Traffic Server also defines several common values that appear in
+HTTP headers.</p>
+<p><strong>Traffic Server Definition</strong>
+<strong>HTTP Header Value</strong>
+<code>INK_HTTP_VALUE_BYTES</code>
+"bytes"
+<code>INK_HTTP_VALUE_CHUNKED</code>
+"chunked"
+<code>INK_HTTP_VALUE_CLOSE</code>
+"close"
+<code>INK_HTTP_VALUE_COMPRESS</code>
+"compress"
+<code>INK_HTTP_VALUE_DEFLATE</code>
+"deflate"
+<code>INK_HTTP_VALUE_GZIP</code>
+"gzip"
+<code>INK_HTTP_VALUE_IDENTITY</code>
+"identity"
+<code>INK_HTTP_VALUE_KEEP_ALIVE</code>
+"keep-alive"
+<code>INK_HTTP_VALUE_MAX_AGE</code>
+"max-age"
+<code>INK_HTTP_VALUE_MAX_STALE</code>
+"max-stale"
+<code>INK_HTTP_VALUE_MIN_FRESH</code>
+"min-fresh"
+<code>INK_HTTP_VALUE_MUST_REVALIDATE</code>
+"must-revalidate"
+<code>INK_HTTP_VALUE_NONE</code>
+"none"
+<code>INK_HTTP_VALUE_NO_CACHE</code>
+"no-cache"
+<code>INK_HTTP_VALUE_NO_STORE</code>
+"no-store"
+<code>INK_HTTP_VALUE_NO_TRANSFORM</code>
+"no-transform"
+<code>INK_HTTP_VALUE_ONLY_IF_CACHED</code>
+"only-if-cached"
+<code>INK_HTTP_VALUE_PRIVATE</code>
+"private"
+<code>INK_HTTP_VALUE_PROXY_REVALIDATE</code>
+"proxy-revalidate"
+<code>INK_HTTP_VALUE_PUBLIC</code>
+"public"
+<code>INK_HTTP_VALUE_S_MAX_AGE</code>
+"s-maxage"
+ </p>
+<p>The method names and header values above are defined in <code>ts.h</code> as
+<code>const char*</code>strings. When Traffic Server sets a method or a header
+value, it checks to make sure that the new value is one of the
+known values. If it is, then it stores a pointer into a global
+table (instead of storing the known value in the marshal buffer).
+The method names and header values listed above are also pointers
+into this table. This allows simple pointer comparison of the value
+returned from <code>INKHttpMethodGet</code> with one of the values listed
+above. It is also recommended that you use the above values when
+referring to one of the known schemes, since this removes the
+possibility of a spelling error.</p>
+<p>The <a href="HTTPHeaderFunctions"><strong>HTTP Header Functions</strong></a> are
+listed below:</p>
+<p><a href="HTTPHeaderFunctions#INKHttpHdrClone">INKHttpHdrClone</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrCopy">INKHttpHdrCopy</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrCreate">INKHttpHdrCreate</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrDestroy">INKHttpHdrDestroy</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrLengthGet">INKHttpHdrLengthGet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrMethodGet">INKHttpHdrMethodGet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrMethodSet">INKHttpHdrMethodSet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrPrint">INKHttpHdrPrint</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrReasonGet">INKHttpHdrReasonGet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrReasonLookup">INKHttpHdrReasonLookup</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrReasonSet">INKHttpHdrReasonSet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrStatusGet">INKHttpHdrStatusGet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrStatusSet">INKHttpHdrStatusSet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrTypeGet">INKHttpHdrTypeGet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrTypeSet">INKHttpHdrTypeSet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrUrlGet">INKHttpHdrUrlGet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrUrlSet">INKHttpHdrUrlSet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrVersionGet">INKHttpHdrVersionGet</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrVersionSet">INKHttpHdrVersionSet</a>
+<a href="HTTPHeaderFunctions#INKHttpParserClear">INKHttpParserClear</a>
+<a href="HTTPHeaderFunctions#INKHttpParserCreate">INKHttpParserCreate</a>
+<a href="HTTPHeaderFunctions#INKHttpParserDestroy">INKHttpParserDestroy</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrParseReq">INKHttpHdrParseReq</a>
+<a href="HTTPHeaderFunctions#INKHttpHdrParseResp">INKHttpHdrParseResp</a></p>
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHooksAndTransactions.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHooksAndTransactions.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHooksAndTransactions.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPHooksAndTransactions.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      <p><a href="ch07s05">Prev</a> - Cache Events
+Adding Hooks - <a href="AddingHooks">Next</a></p>
+<h2 id="chapter_8_http_hooks_and_transactions">Chapter 8. HTTP Hooks and Transactions</h2>
+<p>Hooks are points in Traffic Server transaction processing where
+plugins can step in and do some work. Registering a plugin function
+for callback amounts to "adding" the function to a hook. You can
+register your plugin to be called back for every single transaction
+or only for specific transactions.</p>
+<p>This chapter contains the following sections:</p>
+<ul>
+<li><a href="AddingHooks" title="Adding Hooks">Adding Hooks</a></li>
+<li><a href="HTTPSessions" title="HTTP Sessions">HTTP Sessions</a></li>
+<li><a href="HTTP_Transactions" title="HTTP Transactions">HTTP Transactions</a></li>
+<li><a href="InterceptingHTTPTransactionFuncs" title="Intercepting HTTP Transaction Functions">Intercepting HTTP Transaction Functions</a></li>
+<li><a href="InitiateHTTPConnection" title="Initiate HTTP Connection">Initiate HTTP Connection</a></li>
+<li><a href="HTTPAlternateSelection" title="HTTP Alternate Selection">HTTP Alternate Selection</a></li>
+</ul>
+<h2 id="the_set_of_hooks">The Set of Hooks</h2>
+<p>To understand hooks and transactions, you should be familiar with
+the following terminology:</p>
+<p><strong>HTTP Transaction</strong>
+  ~ A <strong>transaction</strong> consists of a single HTTP request from a
+    client and the response Traffic Server sends to that client. Thus,
+    a transaction begins when Traffic Server receives a request and
+    ends when Traffic Server sends the response.</p>
+<div class="codehilite"><pre><span class="n">Traffic</span> <span class="n">Server</span> <span class="n">uses</span> <span class="o">**</span><span class="n">HTTP</span> <span class="n">state</span> <span class="n">machines</span><span class="o">**</span> <span class="n">to</span> <span class="n">process</span>
+<span class="n">transactions</span><span class="o">.</span> <span class="n">The</span> <span class="n">state</span> <span class="n">machines</span> <span class="n">follow</span> <span class="n">a</span> <span class="n">complex</span> <span class="n">set</span> <span class="n">of</span> <span class="n">states</span>
+<span class="n">involved</span> <span class="n">in</span> <span class="n">sophisticated</span> <span class="n">caching</span> <span class="ow">and</span> <span class="n">document</span> <span class="n">retrieval</span> <span class="p">(</span><span class="n">taking</span>
+<span class="n">into</span> <span class="n">account</span><span class="p">,</span> <span class="k">for</span> <span class="n">example</span><span class="p">,</span> <span class="n">alternate</span> <span class="n">selection</span><span class="p">,</span> <span class="n">freshness</span> <span class="n">criteria</span><span class="p">,</span>
+<span class="ow">and</span> <span class="n">hierarchical</span> <span class="n">caching</span><span class="p">)</span><span class="o">.</span> <span class="n">The</span> <span class="n">Traffic</span> <span class="n">Server</span> <span class="n">API</span> <span class="n">provides</span> <span class="n">hooks</span> <span class="n">to</span>
+<span class="n">a</span> <span class="n">subset</span> <span class="n">of</span> <span class="n">these</span> <span class="n">states</span><span class="p">,</span> <span class="n">as</span> <span class="n">illustrated</span> <span class="n">in</span> <span class="n">the</span>
+<span class="p">[</span><span class="n">HTTP</span> <span class="n">Transaction</span> <span class="n">State</span> <span class="n">Diagram</span><span class="p">](</span><span class="n">HTTPHooksAndTransactions</span><span class="c1">#Fig_HHTTPTxStateDiag &quot;Figure 8.1. HTTP Transaction State Diagram&quot;)</span>
+<span class="n">below</span><span class="o">.</span>
+</pre></div>
+
+
+<p><strong>Transform hooks</strong>
+  ~ The two <strong>transform hooks</strong>, <code>INK_HTTP_REQUEST_TRANSFORM_HOOK</code>
+    and <code>INK_HTTP_RESPONSE_TRANSFORM_HOOK</code>, are called in the course of
+    an HTTP transform. To see where in the HTTP transaction they are
+    called, look for the "set up transform" ovals in the
+    <a href="HTTPHooksAndTransactions#Fig_HHTTPTxStateDiag" title="Figure 8.1. HTTP Transaction State Diagram">HTTP Transaction State Diagram</a>
+    below.</p>
+<p><strong>HTTP session</strong>
+  ~ A <strong>session</strong> consists of a single client connection to Traffic
+    Server; it may consist of a single transaction or several
+    transactions in succession. The session starts when the client
+    connection opens and ends when the connection closes.</p>
+<p><strong>Figure 8.1. HTTP Transaction State Diagram (**not yet updated**)</strong></p>
+<p><img alt="HTTP Transaction State Diagram" src="images/http_state2.jpg" /></p>
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPSessionFunctions.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPSessionFunctions.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPSessionFunctions.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPSessionFunctions.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPSessions.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPSessions.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPSessions.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPSessions.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPTransactionFunctions.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPTransactionFunctions.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPTransactionFunctions.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPTransactionFunctions.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPTransformationPlugins.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPTransformationPlugins.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPTransformationPlugins.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTPTransformationPlugins.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTP_Transactions.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTP_Transactions.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTP_Transactions.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HTTP_Transactions.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HeaderBasedPluginEx.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HeaderBasedPluginEx.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HeaderBasedPluginEx.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HeaderBasedPluginEx.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HostLookupFunctions.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HostLookupFunctions.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HostLookupFunctions.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HostLookupFunctions.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HostsLookupAPI.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HostsLookupAPI.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HostsLookupAPI.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/HostsLookupAPI.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKActionDone.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKActionDone.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKActionDone.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKActionDone.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKAssert.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKAssert.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKAssert.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKAssert.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKCacheKeyDestroy.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKCacheKeyDestroy.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKCacheKeyDestroy.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKCacheKeyDestroy.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>

Added: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKCacheKeyDigestSet.en.html
URL: http://svn.apache.org/viewvc/websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKCacheKeyDigestSet.en.html?rev=778713&view=auto
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKCacheKeyDigestSet.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/INKCacheKeyDigestSet.en.html Thu Nov  4 23:44:55 2010
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+
+<html>
+  <!-- This template is for the bulk of the site! -->
+  <head>
+    
+    
+    <title></title>
+    
+  </head>
+
+  <body>
+    <h1></h1>
+
+  <div id="content">
+      
+  </div>
+
+  <div id="footer">
+	  Copyright  &copy; 2010
+	  <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+	  Licensed under
+	  the <a href="http://www.apache.org/licenses/">Apache License</a>,
+	  Version 2.0. Apache Traffic Server, Apache,
+	  the Apache Traffic Server logo, and the Apache feather logo are
+	  trademarks of The Apache Software Foundation.
+  </div>
+
+  </body>
+</html>