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 2011/02/06 02:36:19 UTC

svn commit: r784844 [1/2] - in /websites/staging/trafficserver/trunk/content/docs/trunk: ./ sdk/http-headers/ sdk/http-headers/guide-to-trafficserver-http-header-system/ sdk/mutex-guide/ sdk/sample-source-code/

Author: buildbot
Date: Sun Feb  6 01:36:19 2011
New Revision: 784844

Log:
Staging update by buildbot

Modified:
    websites/staging/trafficserver/trunk/content/docs/trunk/STATUS
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/duplicate-mime-fields-are-not-coalesced.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/index.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/mime-fields-always-belong-to-an-associated-mime-header.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/release-marshal-buffer-handles.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/http-headers.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/index.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/marshal-buffers.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/mime-headers.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/urls.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/mutex-guide/index.en.html
    websites/staging/trafficserver/trunk/content/docs/trunk/sdk/sample-source-code/index.en.html

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/STATUS
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/STATUS (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/STATUS Sun Feb  6 01:36:19 2011
@@ -60,15 +60,14 @@ cache-plugin  -- igalic
 http-hooks-and-transactions -- igalic
 misc-interface-guide -- igalic
 http-headers  -- igalic
-mutex-guide
+mutex-guide  -- igalic
 continuations
 plugin-configurations
 actions-guide
 io-guide
 plugin-management
-preface   -- igalic
-remap-plugin -- igalic
-sample-source-code
+adding-statistics
+sample-source-code --igalic
 troubleshooting-tips
 
 

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/duplicate-mime-fields-are-not-coalesced.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/duplicate-mime-fields-are-not-coalesced.en.html (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/duplicate-mime-fields-are-not-coalesced.en.html Sun Feb  6 01:36:19 2011
@@ -6,8 +6,8 @@
     
     <link rel="stylesheet" href="/styles/pygments_style.css" />
     
-    <title></title>
-    
+    <title>Apache Traffic Server™ Software Developers Kit</title>
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
   </head>
 
   <body>
@@ -15,11 +15,20 @@
 	    <span id="ts_logo">
 		  <a href="http://trafficserver.apache.org/"><img alt="Apache Traffic Server" src="/images/ts75.png" /></a>
 	  </span>
-	    <h1></h1>
+	    <h1>Apache Traffic Server™ Software Developers Kit</h1>
     </div>
 
   <div id="content">
-      
+      <p><a href="../guide-to-trafficserver-http-header-system">Prev</a> - Guide to Traffic Server HTTP Header System</p>
+<p>MIME Fields Always Belong to an Associated MIME Header - <a href="mime-fields-always-belong-to-an-associated-mime-header">Next</a></p>
+<h3 id="DuplicateMIMEFieldsAreNotCoalesced">Duplicate MIME Fields Are Not Coalesced</h3>
+<p>MIME headers can contain more than one MIME field with the same name. Earlier 
+versions of Traffic Server joined multiple fields with the same name into one 
+field with composite values. This behavior came at a performance cost and caused 
+interoperability problems with older clients and servers. Therefore, this version 
+of Traffic Server does not coalesce duplicate fields.</p>
+<p>Properly-behaving plugins should check for the presence of duplicate fields 
+and then iterate over the duplicate fields via <a href="link/to/doxygen"><code>TSMimeHdrFieldNextDup</code></a>. </p>
   </div>
 
   <div id="footer">

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/index.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/index.en.html (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/index.en.html Sun Feb  6 01:36:19 2011
@@ -6,8 +6,8 @@
     
     <link rel="stylesheet" href="/styles/pygments_style.css" />
     
-    <title></title>
-    
+    <title>Apache Traffic Server™ Software Developers Kit</title>
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
   </head>
 
   <body>
@@ -15,11 +15,38 @@
 	    <span id="ts_logo">
 		  <a href="http://trafficserver.apache.org/"><img alt="Apache Traffic Server" src="/images/ts75.png" /></a>
 	  </span>
-	    <h1></h1>
+	    <h1>Apache Traffic Server™ Software Developers Kit</h1>
     </div>
 
   <div id="content">
-      
+      <p><a href="..">Prev</a> - HTTP Headers</p>
+<p>Duplicate MIME Fields Are Not Coalesced - <a href="duplicate-mime-fields-are-not-coalesced">Next</a></p>
+<h2 id="GuideTSHTTPHeaderSystem">Guide to Traffic Server HTTP Header System</h2>
+<h3 id="NoNull-TerminatedStrings">No Null-Terminated Strings</h3>
+<p>It's not safe to assume that string data contained in marshal buffers (such 
+as URLs and MIME fields) is stored in null-terminated string copies. Therefore, 
+your plugins should always use the length parameter when retrieving or manipulating 
+these strings. You <strong>cannot</strong> pass in <code>NULL</code> for string-length return values; 
+string values returned from marshall buffers are not null-terminated. If you 
+need a null-terminated value, then use <code>TSstrndup</code> to automatically null-terminate 
+a string. The strings that come back and are not null-terminated <strong>cannot</strong> 
+be passed into the common <code>str*()</code> routines</p>
+<p><img alt="[Note]" src="/images/docbook/note.png" /></p>
+<p><strong>Note</strong> </p>
+<p>Values returned from a marshall buffer can be <code>NULL</code>, which means the field 
+or object requested does not exist.</p>
+<p>For example (from the <code>blacklist-1</code> sample):</p>
+<div class="codehilite"><pre><span class="kt">char</span> <span class="o">*</span><span class="n">host_string</span><span class="p">;</span>
+<span class="kt">int</span> <span class="n">host_length</span><span class="p">;</span>
+<span class="n">host_string</span> <span class="o">=</span> <span class="n">TSUrlHostGet</span> <span class="p">(</span><span class="n">bufp</span><span class="p">,</span> <span class="n">url_loc</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">host_length</span><span class="p">);</span>
+<span class="k">for</span> <span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">nsites</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">strncmp</span> <span class="p">(</span><span class="n">host_string</span><span class="p">,</span> <span class="n">sites</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">host_length</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+<span class="p">...</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>See the sample plugins for additional examples.</p>
   </div>
 
   <div id="footer">

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/mime-fields-always-belong-to-an-associated-mime-header.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/mime-fields-always-belong-to-an-associated-mime-header.en.html (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/mime-fields-always-belong-to-an-associated-mime-header.en.html Sun Feb  6 01:36:19 2011
@@ -6,8 +6,8 @@
     
     <link rel="stylesheet" href="/styles/pygments_style.css" />
     
-    <title></title>
-    
+    <title>Apache Traffic Server™ Software Developers Kit</title>
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
   </head>
 
   <body>
@@ -15,11 +15,52 @@
 	    <span id="ts_logo">
 		  <a href="http://trafficserver.apache.org/"><img alt="Apache Traffic Server" src="/images/ts75.png" /></a>
 	  </span>
-	    <h1></h1>
+	    <h1>Apache Traffic Server™ Software Developers Kit</h1>
     </div>
 
   <div id="content">
-      
+      <p><a href="duplicate-mime-fields-are-not-coalesced">Prev</a> - Duplicate MIME Fields Are Not Coalesced</p>
+<p>Release Marshal Buffer Handles - <a href="release-marshal-buffer-handles">Next</a></p>
+<h3 id="MIMEFieldsAlwaysBelonganAssociatedMIMEHeader">MIME Fields Always Belong to an Associated MIME Header</h3>
+<p>When using Traffic Server, you cannot create a new MIME field without an associated 
+MIME header or HTTP header; MIME fields are always seen as part of a MIME header 
+or HTTP header.</p>
+<p>To use a MIME field, you must specify the MIME header or HTTP header to which 
+it belongs - this is called the field's <strong>parent header</strong>. The <code>TSMimeField*</code> 
+functions in older versions of the SDK have been deprecated, as they do not 
+require the parent header as inputs. The current version of Traffic Server 
+uses new functions, the <code>**TSMimeHdrField***</code> series, which require you to 
+specify the location of the parent header along with the location of the MIME 
+field. For every deprecated <code>TSMimeField*</code> function, there is a new, preferred 
+<code>TSMimeHdrField*</code> function. Therefore, you should use the <code>**TSMimeHdrField***</code> 
+functions instead of the deprecated <code>TSMimeField*</code> series. Examples are provided 
+below.</p>
+<p>Instead of:</p>
+<div class="codehilite"><pre><span class="n">TSMLoc</span> <span class="n">TSMimeFieldCreate</span> <span class="p">(</span><span class="n">TSMBuffer</span> <span class="n">bufp</span><span class="p">)</span>
+</pre></div>
+
+
+<p>You should use:</p>
+<div class="codehilite"><pre><span class="n">TSMLoc</span> <span class="n">TSMimeHdrFieldCreate</span> <span class="p">(</span><span class="n">TSMBuffer</span> <span class="n">bufp</span><span class="p">,</span> <span class="n">TSMLoc</span> <span class="n">hdr</span><span class="p">)</span>
+</pre></div>
+
+
+<p>Instead of:</p>
+<div class="codehilite"><pre><span class="kt">void</span> <span class="n">TSMimeFieldCopyValues</span> <span class="p">(</span><span class="n">TSMBuffer</span> <span class="n">dest_bufp</span><span class="p">,</span> <span class="n">TSMLoc</span> <span class="n">dest_offset</span><span class="p">,</span>
+   <span class="n">TSMBuffer</span> <span class="n">src_bufp</span><span class="p">,</span> <span class="n">TSMLoc</span> <span class="n">src_offset</span><span class="p">)</span>
+</pre></div>
+
+
+<p>You should use:</p>
+<div class="codehilite"><pre><span class="kt">void</span> <span class="n">TSMimeHdrFieldCopyValues</span> <span class="p">(</span><span class="n">TSMBuffer</span> <span class="n">dest_bufp</span><span class="p">,</span> <span class="n">TSMLoc</span> <span class="n">dest_hdr</span><span class="p">,</span>
+   <span class="n">TSMLoc</span> <span class="n">dest_field</span><span class="p">,</span> <span class="n">TSMBuffer</span> <span class="n">src_bufp</span><span class="p">,</span> <span class="n">TSMLoc</span> <span class="n">src_hdr</span><span class="p">,</span> <span class="n">TSMLoc</span>
+   <span class="n">src_field</span><span class="p">)</span>
+</pre></div>
+
+
+<p>In the <code>TSMimeHdrField*</code> function prototypes, the <code>TSMLoc</code> field corresponds 
+to the <code>TSMLoc</code> offset used the deprecated <code>TSMimeField*</code> functions (see 
+the discussion of parent <code>TSMLoc</code> in the following section).</p>
   </div>
 
   <div id="footer">

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/release-marshal-buffer-handles.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/release-marshal-buffer-handles.en.html (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/guide-to-trafficserver-http-header-system/release-marshal-buffer-handles.en.html Sun Feb  6 01:36:19 2011
@@ -6,8 +6,8 @@
     
     <link rel="stylesheet" href="/styles/pygments_style.css" />
     
-    <title></title>
-    
+    <title>Apache Traffic Server™ Software Developers Kit</title>
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
   </head>
 
   <body>
@@ -15,11 +15,62 @@
 	    <span id="ts_logo">
 		  <a href="http://trafficserver.apache.org/"><img alt="Apache Traffic Server" src="/images/ts75.png" /></a>
 	  </span>
-	    <h1></h1>
+	    <h1>Apache Traffic Server™ Software Developers Kit</h1>
     </div>
 
   <div id="content">
-      
+      <p><a href="mime-fields-always-belong-to-an-associated-mime-header">Prev</a> - MIME Fields Always Belong to an Associated MIME Header</p>
+<p>Marshall Buffers - <a href="../marshal-buffers">Next</a></p>
+<h3 id="ReleaseMarshalBufferHandles">Release Marshal Buffer Handles</h3>
+<p>When you fetch a component object or create a new object, you get back a
+handle to the object location. The handle is either an <code>TSMLoc</code> for an object
+location or <code>char *</code> for a string location. You can manipulate the object
+through these handles, but when you are finished you need to release the
+handle to free up system resources.</p>
+<p>The general guideline is to release all <code>TSMLoc</code> and string handles you retrieve. 
+The one exception is the string returned by <code>TSUrlStringGet</code>, which must be 
+freed by a call to <code>TSfree</code>.</p>
+<p>The handle release functions expect three arguments: the marshal buffer containing 
+the data, the location of the parent object, and the location of the object 
+to be released. The parent location is usually clear from the creation of the 
+<code>TSMLoc</code> or string. For example, if your plugin had the following calls:</p>
+<div class="codehilite"><pre><span class="n">url_loc</span> <span class="o">=</span> <span class="n">TSHttpHdrUrlGet</span> <span class="p">(</span><span class="n">bufp</span><span class="p">,</span> <span class="n">hdr_loc</span><span class="p">);</span>
+<span class="n">host_string</span> <span class="o">=</span> <span class="n">TSUrlHostGet</span> <span class="p">(</span><span class="n">bufp</span><span class="p">,</span> <span class="n">url_loc</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">host_length</span><span class="p">);</span>
+</pre></div>
+
+
+<p>then your plugin would have to call:</p>
+<div class="codehilite"><pre><span class="n">TSHandleMLocRelease</span> <span class="p">(</span><span class="n">bufp</span><span class="p">,</span> <span class="n">hdr_loc</span><span class="p">,</span> <span class="n">url_loc</span><span class="p">);</span>
+</pre></div>
+
+
+<p>If an <code>TSMLoc</code> is obtained from a transaction, then it does not have a parent 
+<code>TSMLoc</code>. Use the null <code>TSMLoc</code> constant <code>TS_NULL_MLOC</code> as its parent. For 
+example, if your plugin calls:</p>
+<div class="codehilite"><pre><span class="n">TSHttpTxnClientReqGet</span> <span class="p">(</span><span class="n">txnp</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">bufp</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">hdr_loc</span><span class="p">);</span>
+</pre></div>
+
+
+<p>then you must release <code>hdr_loc</code> with:</p>
+<div class="codehilite"><pre>    <span class="n">TSHandleMLocRelease</span> <span class="p">(</span><span class="n">bufp</span><span class="p">,</span> <span class="n">TS_NULL_MLOC</span><span class="p">,</span> <span class="n">hdr_loc</span><span class="p">);</span>
+</pre></div>
+
+
+<p>You need to use <code>TS_NULL_MLOC</code> to release any <code>TSMLoc</code> handles retrieved 
+by the <code>TSHttpTxn*Get</code> functions.</p>
+<p>Here's an example using a new <code>TSMimeHdrField</code> function:</p>
+<div class="codehilite"><pre><span class="n">TSHttpTxnServerRespGet</span><span class="p">(</span> <span class="n">txnp</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">resp_bufp</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">resp_hdr_loc</span> <span class="p">);</span>
+<span class="n">new_field_loc</span> <span class="o">=</span> <span class="n">TSMimeHdrFieldCreate</span> <span class="p">(</span><span class="n">resp_bufp</span><span class="p">,</span> <span class="n">resp_hdr_loc</span><span class="p">);</span>
+<span class="n">TSHandleMLocRelease</span> <span class="p">(</span> <span class="n">resp_bufp</span><span class="p">,</span> <span class="n">resp_hdr_loc</span><span class="p">,</span> <span class="n">new_field_loc</span><span class="p">);</span>
+<span class="n">TSHandleMLocRelease</span> <span class="p">(</span> <span class="n">resp_bufp</span><span class="p">,</span> <span class="n">TS_NULL_MLOC</span><span class="p">,</span> <span class="n">resp_hdr_loc</span><span class="p">);</span>
+</pre></div>
+
+
+<p>See the sample plugins for many more examples.</p>
+<p><img alt="[Tip]" src="/images/docbook/tip.png" /></p>
+<p><strong>Tip</strong> </p>
+<p>You should release handles before reenabling the HTTP transaction. In other 
+words, call <code>TSHandleMLocRelease</code> before <code>TSHttpTxnReenable</code>. </p>
   </div>
 
   <div id="footer">

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/http-headers.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/http-headers.en.html (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/http-headers.en.html Sun Feb  6 01:36:19 2011
@@ -6,8 +6,8 @@
     
     <link rel="stylesheet" href="/styles/pygments_style.css" />
     
-    <title></title>
-    
+    <title>Apache Traffic Server™ Software Developers Kit</title>
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
   </head>
 
   <body>
@@ -15,11 +15,130 @@
 	    <span id="ts_logo">
 		  <a href="http://trafficserver.apache.org/"><img alt="Apache Traffic Server" src="/images/ts75.png" /></a>
 	  </span>
-	    <h1></h1>
+	    <h1>Apache Traffic Server™ Software Developers Kit</h1>
     </div>
 
   <div id="content">
-      
+      <p><a href="marshal-buffers">Prev</a> - Marshal Buffers</p>
+<p>URLs - <a href="urls">Next</a></p>
+<h2 id="HTTPHeaders">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="../http-headers#AboutHTTPHeaders">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>
+<dl>
+<dt><code>TS_HTTP_METHOD_CONNECT</code></dt>
+<dd>"CONNECT"</dd>
+<dt><code>TS_HTTP_METHOD_DELETE</code></dt>
+<dd>"DELETE"</dd>
+<dt><code>TS_HTTP_METHOD_GE</code></dt>
+<dd>"GET"</dd>
+<dt><code>TS_HTTP_METHOD_HEAD</code></dt>
+<dd>"HEAD"</dd>
+<dt><code>TS_HTTP_METHOD_ICP_QUERY</code></dt>
+<dd>"ICP_QUERY"</dd>
+<dt><code>TS_HTTP_METHOD_OPTIONS</code></dt>
+<dd>"OPTIONS"</dd>
+<dt><code>TS_HTTP_METHOD_POST</code></dt>
+<dd>"POST"</dd>
+<dt><code>TS_HTTP_METHOD_PURGE</code></dt>
+<dd>"PURGE"</dd>
+<dt><code>TS_HTTP_METHOD_PUT</code></dt>
+<dd>"PUT"</dd>
+<dt><code>TS_HTTP_METHOD_TRACE</code></dt>
+<dd>"TRACE"</dd>
+</dl>
+<p>Traffic Server also defines several common values that appear in HTTP headers. </p>
+<dl>
+<dt><code>TS_HTTP_VALUE_BYTES</code></dt>
+<dd>"bytes"</dd>
+<dt><code>TS_HTTP_VALUE_CHUNKED</code></dt>
+<dd>"chunked"</dd>
+<dt><code>TS_HTTP_VALUE_CLOSE</code></dt>
+<dd>"close"</dd>
+<dt><code>TS_HTTP_VALUE_COMPRESS</code></dt>
+<dd>"compress"</dd>
+<dt><code>TS_HTTP_VALUE_DEFLATE</code></dt>
+<dd>"deflate"</dd>
+<dt><code>TS_HTTP_VALUE_GZIP</code></dt>
+<dd>"gzip"</dd>
+<dt><code>TS_HTTP_VALUE_IDENTITY</code></dt>
+<dd>"identity"</dd>
+<dt><code>TS_HTTP_VALUE_KEEP_ALIVE</code></dt>
+<dd>"keep-alive"</dd>
+<dt><code>TS_HTTP_VALUE_MAX_AGE</code></dt>
+<dd>"max-age"</dd>
+<dt><code>TS_HTTP_VALUE_MAX_STALE</code></dt>
+<dd>"max-stale"</dd>
+<dt><code>TS_HTTP_VALUE_MIN_FRESH</code></dt>
+<dd>"min-fresh"</dd>
+<dt><code>TS_HTTP_VALUE_MUST_REVALIDATE</code></dt>
+<dd>"must-revalidate"</dd>
+<dt><code>TS_HTTP_VALUE_NONE</code></dt>
+<dd>"none"</dd>
+<dt><code>TS_HTTP_VALUE_NO_CACHE</code></dt>
+<dd>"no-cache"</dd>
+<dt><code>TS_HTTP_VALUE_NO_STORE</code></dt>
+<dd>"no-store"</dd>
+<dt><code>TS_HTTP_VALUE_NO_TRANSFORM</code></dt>
+<dd>"no-transform"</dd>
+<dt><code>TS_HTTP_VALUE_ONLY_IF_CACHED</code></dt>
+<dd>"only-if-cached"</dd>
+<dt><code>TS_HTTP_VALUE_PRIVATE</code></dt>
+<dd>"private"</dd>
+<dt><code>TS_HTTP_VALUE_PROXY_REVALIDATE</code></dt>
+<dd>"proxy-revalidate"</dd>
+<dt><code>TS_HTTP_VALUE_PUBLIC</code></dt>
+<dd>"public"</dd>
+<dt><code>TS_HTTP_VALUE_S_MAX_AGE</code></dt>
+<dd>"s-maxage"</dd>
+</dl>
+<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>TSHttpMethodGet</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 <strong>HTTP Header Functions</strong> are listed below: </p>
+<ul>
+<li><a href="link/to/doxygen">TSHttpHdrClone</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrCopy</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrCreate</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrDestroy</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrLengthGet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrMethodGet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrMethodSet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrPrint</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrReasonGet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrReasonLookup</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrReasonSet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrStatusGet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrStatusSet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrTypeGet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrTypeSet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrUrlGet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrUrlSet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrVersionGet</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrVersionSet</a></li>
+<li><a href="link/to/doxygen">TSHttpParserClear</a></li>
+<li><a href="link/to/doxygen">TSHttpParserCreate</a></li>
+<li><a href="link/to/doxyge">TSHttpParserDestroy</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrParseReq</a></li>
+<li><a href="link/to/doxygen">TSHttpHdrParseResp</a></li>
+</ul>
   </div>
 
   <div id="footer">

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/index.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/index.en.html (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/index.en.html Sun Feb  6 01:36:19 2011
@@ -6,8 +6,8 @@
     
     <link rel="stylesheet" href="/styles/pygments_style.css" />
     
-    <title></title>
-    
+    <title>Apache Traffic Server™ Software Developers Kit</title>
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
   </head>
 
   <body>
@@ -15,11 +15,116 @@
 	    <span id="ts_logo">
 		  <a href="http://trafficserver.apache.org/"><img alt="Apache Traffic Server" src="/images/ts75.png" /></a>
 	  </span>
-	    <h1></h1>
+	    <h1>Apache Traffic Server™ Software Developers Kit</h1>
     </div>
 
   <div id="content">
-      
+      <p><a href="../misc-interface-guide/thread-functions">Prev</a> - Thread Functions</p>
+<p>Guide to Traffic Server HTTP Header System - <a href="guide-to-trafficserver-http-header-system">Next</a></p>
+<h2 id="HTTPHeaders">HTTP Headers</h2>
+<p>This chapter explains the functions used to manipulate HTTP headers.</p>
+<ul>
+<li><a href="#AboutHTTPHeaders">About HTTP Headers</a></li>
+<li><a href="guide-to-trafficserver-http-header-system">Guide to Traffic Server HTTP Header System</a><ul>
+<li><a href="guide-to-trafficserver-http-header-system/duplicate-mime-fields-are-not-coalesced">Duplicate MIME Fields Are Not Coalesced</a></li>
+<li><a href="guide-to-trafficserver-http-header-system/release-marshal-buffer-handles">MIME Fields Always Belong to an Associated MIME Header</a></li>
+<li><a href="guide-to-trafficserver-http-header-system/release-marshal-buffer-handles">Release Marshal Buffer Handles</a></li>
+</ul>
+</li>
+<li><a href="marshal-buffers">Marshal Buffers</a></li>
+<li><a href="http-headers">HTTP Headers</a></li>
+<li><a href="urls">URLs</a></li>
+<li><a href="MIMEHeaders.html">MIME Header</a></li>
+</ul>
+<h2 id="AboutHTTPHeaders">About HTTP Headers</h2>
+<p>An <strong><em>HTTP message</em></strong> consists of the following:</p>
+<ul>
+<li>HTTP header</li>
+<li>body</li>
+<li>trailer</li>
+</ul>
+<p>The <strong><em>HTTP header</em></strong> consists of: </p>
+<ul>
+<li>A request or response line<ul>
+<li>An HTTP <strong>request line</strong> contains a method, URL, and version</li>
+<li>A <strong>response line</strong> contains a version, status code, and reason phrase</li>
+</ul>
+</li>
+<li>A MIME header</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>GET http://www.tiggerwigger.com/ HTTP/1.0
+Proxy-Connection: Keep-Alive
+User-Agent: Mozilla/5.0 [en] (X11; I; Linux 2.2.3 i686)
+Host: www.tiggerwigger.com
+Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */
+*
+
+Accept-Encoding: gzip
+Accept-Language: en
+Accept-Charset: iso-8859-1, *, utf-8
+</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="mf">1.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="mf">4.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/sdk/http_header_struct.jpg" /> </p>
+<p>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/sdk/http_headers.jpg" /></p>
+<p>The marshal buffer or <code>TSMBuffer</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>TSMLoc</code>) and the marshal 
+buffer containing the object (<code>TSMBuffer</code>).</p>
+<p><strong>Figure 10.3. Marshal Buffers and Header Locations</strong></p>
+<p><img alt="Marshal Buffers and Header Locations" src="/images/sdk/marshall_buffers.jpg" /></p>
+<p>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>TSMLoc</code> location pointer for the HTTP header (<code>http_hdr_loc</code>)</p>
+</li>
+<li>
+<p><code>TSMLoc</code> location pointer for the request URL (<code>url_loc</code>)</p>
+</li>
+<li>
+<p><code>TSMLoc</code> location pointers for the MIME header (<code>mime_hdr_loc</code>)</p>
+</li>
+<li>
+<p><code>TSMLoc</code> location pointers for MIME fields (<code>fieldi_loc</code>)</p>
+</li>
+<li>
+<p><code>TSMLoc</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>TSHttpHdrUrlGet</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">

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/marshal-buffers.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/marshal-buffers.en.html (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/marshal-buffers.en.html Sun Feb  6 01:36:19 2011
@@ -7,7 +7,7 @@
     <link rel="stylesheet" href="/styles/pygments_style.css" />
     
     <title></title>
-    
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
   </head>
 
   <body>
@@ -19,7 +19,40 @@
     </div>
 
   <div id="content">
-      
+      <p><a href="/index.html"><img alt="" src="images/docbook/ts75.png" /></a>™</p>
+<h1 id="apache_traffic_server+_software_developers_kit__apachets+softwaredeveloperskit">Apache Traffic Server™ Software Developers Kit # {#ApacheTS™SoftwareDevelopersKit}</h1>
+<p><a href="guide-to-trafficserver-http-header-system/release-marshal-buffer-handles">Prev</a> - Release Marshal Buffers</p>
+<p>HTTP Headers - <a href="HTTP Headers">Next</a></p>
+<h2 id="MarshalBuffers">Marshal Buffers</h2>
+<p>A <strong>marshal buffer</strong>, or <code>TSMBuffer</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 a marshal buffer. Whenever 
+you manipulate an object, you require the handle to the object (<code>TSMLoc</code>) 
+and the marshal buffer containing the object (<code>TSMBuffer</code>).</p>
+<p>Routines exist for manipulating the object based on these two pieces of information. 
+For example, see one of the following:</p>
+<ul>
+<li><a href="HTTPHeaders2.html">HTTP Headers</a></li>
+<li><a href="URLs.html">URLs</a></li>
+<li><a href="MIMEHeaders.html">MIME Headers</a></li>
+</ul>
+<p>The <strong>marshal buffer functions</strong> enable you to create and destroy Traffic Server's 
+marshal buffers, which are the data structures that hold parsed URLs, MIME 
+headers, and HTTP headers.</p>
+<p><img alt="[Caution]" src="/images/docbook/caution.png" /></p>
+<p><strong>Caution</strong> </p>
+<p>Any marshal buffer fetched by <code>TSHttpTxn*Get</code> will be used by other parts 
+of the system. Be careful not to destroy these shared transaction marshal buffers 
+in functions such as those below:</p>
+<ul>
+<li><code>[TSHttpTxnCachedReqGet](link/to/doxygen)</code></li>
+<li><code>[TSHttpTxnCachedRespGet](link/to/doxygen)</code></li>
+<li><code>[TSHttpTxnClientReqGet](link/to/doxygen)</code></li>
+<li><code>[TSHttpTxnClientRespGet](link/to/doxygen)</code></li>
+<li><code>[TSHttpTxnServerReqGet](link/to/doxygen)</code></li>
+<li><code>[TSHttpTxnServerRespGet](link/to/doxygen)</code></li>
+<li><code>[TSHttpTxnTransformRespGet](link/to/doxyge)</code></li>
+</ul>
   </div>
 
   <div id="footer">

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/mime-headers.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/mime-headers.en.html (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/mime-headers.en.html Sun Feb  6 01:36:19 2011
@@ -6,8 +6,8 @@
     
     <link rel="stylesheet" href="/styles/pygments_style.css" />
     
-    <title></title>
-    
+    <title>Apache Traffic Server™ Software Developers Kit</title>
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
   </head>
 
   <body>
@@ -15,11 +15,343 @@
 	    <span id="ts_logo">
 		  <a href="http://trafficserver.apache.org/"><img alt="Apache Traffic Server" src="/images/ts75.png" /></a>
 	  </span>
-	    <h1></h1>
+	    <h1>Apache Traffic Server™ Software Developers Kit</h1>
     </div>
 
   <div id="content">
-      
+      <p><a href="urls">Prev</a> - URLs</p>
+<p>Chapter 11. Mutex Guide - <a href="../mutex-guide">Next</a></p>
+<h2 id="MIMEHeaders">MIME Headers</h2>
+<p>The Traffic Server <strong>MIME header functions </strong> enable you to retrieve and modify 
+information about HTTP MIME fields.</p>
+<p>An HTTP request or response consists of a header, body, and trailer. The <strong>HTTP</strong> 
+<strong>header</strong> contains a request (or response) line and a MIME header. A <strong>MIME</strong> 
+<strong>header</strong> is composed of zero or more MIME fields. A <strong>MIME</strong> <strong>field</strong> is 
+composed of a field name, a colon, and zero or more field values (values in 
+a field are separated by commas). </p>
+<p>In the example below: <code>Foo</code> is the MIME field name, <code>bar</code> is the first MIME 
+field value, and <code>car</code> is the second MIME field value.</p>
+<div class="codehilite"><pre>  Foo: bar, car
+</pre></div>
+
+
+<p>The following example is an augmented <strong>Backus-Naur Form</strong> (BNF) for the form 
+of a MIME header - it specifies exactly what was described above. A <strong>header</strong> 
+consists of zero or more <strong>fields</strong> that contain a name, separating colon, 
+and zero or more values. A <strong>name</strong> or <strong>value</strong> is simply a string of tokens 
+that is potentially zero length; a <strong>token</strong> is any character except certain 
+control characters and separators (such as colons). For the purpose of retrieving 
+a field, field names are not case-sensitive; therefore, the field names <code>Foo</code>, 
+<code>foo</code> and <code>fOO</code> are all equivalent.</p>
+<div class="codehilite"><pre>MIME-header = *MIME-field
+MIME-field = field-name &quot;:&quot; #field-value
+field-name = *token
+field-value = *token
+</pre></div>
+
+
+<p>The MIME header data structure is a parsed version of a standard Internet MIME 
+header. The MIME header data structure is similar to the URL data structure 
+(see <a href="urls">URLs</a>). The actual data is stored in a marshal buffer; the 
+MIME header functions operate on a marshal buffer and a location (<code>TSMLoc</code>) 
+within the buffer.</p>
+<p>After a call to <code>TSMimeHdrFieldDestroy</code>, <code>TSMimeHdrFieldRemove</code>, or <code>TSUrlDestroy</code> 
+is made, you must deallocate the <code>TSMLoc</code> handle with a call to <code>TSHandleMLocRelease</code>. 
+You do not need to deallocate a <code>NULL</code> handles. For example: if you call <code>TSMimeHdrFieldValueStringGet</code> 
+to get the value of the content type field and the field does not exist, then 
+it returns <code>TS_NULL_MLOC</code>. In such a case, you wouldn't need to deallocate 
+the handle with a call to <code>TSHandleMLocRelease</code>.</p>
+<p>The location (<code>TSMLoc</code>) in the <a href="#MimeHeaderFxns">MIME header functions</a> 
+can be either an HTTP header location or a MIME header location. If an HTTP 
+header location is passed to these functions, then the system locates the MIME 
+header associated with that HTTP header and executes the corresponding MIME 
+header operations specified by the functions (see the example in the description 
+of <a href="link/to/doxygen"><code>TSMimeHdrCopy</code></a>).</p>
+<p><strong>Note:</strong> MIME headers may contain more than one MIME field with the same name. 
+Previous versions of Traffic Server joined multiple fields with the same name 
+into one field with composite values, but this behavior came at a performance 
+cost and caused compatability issues with older clients and servers. Hence, 
+the current version of Traffic Server does not coalesce duplicate fields. Correctly-behaving 
+plugins should check for the presence of duplicate fields and iterate over 
+the duplicate fields by using <code>TSMimeHdrFieldNextDup</code>.</p>
+<p>To facilitate fast comparisons and reduce storage size, Traffic Server defines 
+several pre-allocated field names. These field names correspond to the field 
+names in HTTP and NNTP headers.</p>
+<dl>
+<dt><code>TS_MIME_FIELD_ACCEPT</code></dt>
+<dd>"Accept"</dd>
+<dd><code>TS_MIME_LEN_ACCEPT</code></dd>
+<dt><code>TS_MIME_FIELD_ACCEPT_CHARSET</code></dt>
+<dd>"Accept-Charset"</dd>
+<dd><code>TS_MIME_LEN_ACCEPT_CHARSET</code></dd>
+<dt><code>TS_MIME_FIELD_ACCEPT_ENCODING</code></dt>
+<dd>"Accept-Encoding"</dd>
+<dd><code>TS_MIME_LEN_ACCEPT_ENCODING</code></dd>
+<dt><code>TS_MIME_FIELD_ACCEPT_LANGUAGE</code></dt>
+<dd>"Accept-Language"</dd>
+<dd><code>TS_MIME_LEN_ACCEPT_LANGUAGE</code></dd>
+<dt><code>TS_MIME_FIELD_ACCEPT_RANGES</code></dt>
+<dd>"Accept-Ranges"</dd>
+<dd><code>TS_MIME_LEN_ACCEPT_RANGES</code></dd>
+<dt><code>TS_MIME_FIELD_AGE</code></dt>
+<dd>"Age"</dd>
+<dd><code>TS_MIME_LEN_AGE</code></dd>
+<dt><code>TS_MIME_FIELD_ALLOW</code></dt>
+<dd>"Allow"</dd>
+<dd><code>TS_MIME_LEN_ALLOW</code></dd>
+<dt><code>TS_MIME_FIELD_APPROVED</code></dt>
+<dd>"Approved"</dd>
+<dd><code>TS_MIME_LEN_APPROVED</code></dd>
+<dt><code>TS_MIME_FIELD_AUTHORIZATION</code></dt>
+<dd>"Authorization"</dd>
+<dd><code>TS_MIME_LEN_AUTHORIZATION</code></dd>
+<dt><code>TS_MIME_FIELD_BYTES</code></dt>
+<dd>"Bytes"</dd>
+<dd><code>TS_MIME_LEN_BYTES</code></dd>
+<dt><code>TS_MIME_FIELD_CACHE_CONTROL</code></dt>
+<dd>"Cache-Control"</dd>
+<dd><code>TS_MIME_LEN_CACHE_CONTROL</code></dd>
+<dt><code>TS_MIME_FIELD_CLIENT_IP</code></dt>
+<dd>"Client-ip"</dd>
+<dd><code>TS_MIME_LEN_CLIENT_IP</code></dd>
+<dt><code>TS_MIME_FIELD_CONNECTION</code></dt>
+<dd>"Connection"</dd>
+<dd><code>TS_MIME_LEN_CONNECTION</code></dd>
+<dt><code>TS_MIME_FIELD_CONTENT_BASE</code></dt>
+<dd>"Content-Base"</dd>
+<dd><code>TS_MIME_LEN_CONTENT_BASE</code></dd>
+<dt><code>TS_MIME_FIELD_CONTENT_ENCODING</code></dt>
+<dd>"Content-Encoding"</dd>
+<dd><code>TS_MIME_LEN_CONTENT_ENCODING</code></dd>
+<dt><code>TS_MIME_FIELD_CONTENT_LANGUAGE</code></dt>
+<dd>"Content-Language"</dd>
+<dd><code>TS_MIME_LEN_CONTENT_LANGUAGE</code></dd>
+<dt><code>TS_MIME_FIELD_CONTENT_LENGTH</code></dt>
+<dd>"Content-Length"</dd>
+<dd><code>TS_MIME_LEN_CONTENT_LENGTH</code></dd>
+<dt><code>TS_MIME_FIELD_CONTENT_LOCATION</code></dt>
+<dd>"Content-Location"</dd>
+<dd><code>TS_MIME_LEN_CONTENT_LOCATION</code></dd>
+<dt><code>TS_MIME_FIELD_CONTENT_MD5</code></dt>
+<dd>"Content-MD5"</dd>
+<dd><code>TS_MIME_LEN_CONTENT_MD5</code></dd>
+<dt><code>TS_MIME_FIELD_CONTENT_RANGE</code></dt>
+<dd>"Content-Range"</dd>
+<dd><code>TS_MIME_LEN_CONTENT_RANGE</code></dd>
+<dt><code>TS_MIME_FIELD_CONTENT_TYPE</code></dt>
+<dd>"Content-Type"</dd>
+<dd><code>TS_MIME_LEN_CONTENT_TYPE</code></dd>
+<dt><code>TS_MIME_FIELD_CONTROL</code></dt>
+<dd>"Control"</dd>
+<dd><code>TS_MIME_LEN_CONTROL</code></dd>
+<dt><code>TS_MIME_FIELD_COOKIE</code></dt>
+<dd>"Cookie"</dd>
+<dd><code>TS_MIME_LEN_COOKIE</code></dd>
+<dt><code>TS_MIME_FIELD_DATE</code></dt>
+<dd>"Date"</dd>
+<dd><code>TS_MIME_LEN_DATE</code></dd>
+<dt><code>TS_MIME_FIELD_DISTRIBUTION</code></dt>
+<dd>"Distribution"</dd>
+<dd><code>TS_MIME_LEN_DISTRIBUTION</code></dd>
+<dt><code>TS_MIME_FIELD_ETAG</code></dt>
+<dd>"Etag"</dd>
+<dd><code>TS_MIME_LEN_ETAG</code></dd>
+<dt><code>TS_MIME_FIELD_EXPECT</code></dt>
+<dd>"Expect"</dd>
+<dd><code>TS_MIME_LEN_EXPECT</code></dd>
+<dt><code>TS_MIME_FIELD_EXPIRES</code></dt>
+<dd>"Expires"</dd>
+<dd><code>TS_MIME_LEN_EXPIRES</code></dd>
+<dt><code>TS_MIME_FIELD_FOLLOWUP_TO</code></dt>
+<dd>"Followup-To"</dd>
+<dd><code>TS_MIME_LEN_FOLLOWUP_TO</code></dd>
+<dt><code>TS_MIME_FIELD_FROM</code></dt>
+<dd>"From"</dd>
+<dd><code>TS_MIME_LEN_FROM</code></dd>
+<dt><code>TS_MIME_FIELD_HOST</code></dt>
+<dd>"Host"</dd>
+<dd><code>TS_MIME_LEN_HOST</code></dd>
+<dt><code>TS_MIME_FIELD_IF_MATCH</code></dt>
+<dd>"If-Match"</dd>
+<dd><code>TS_MIME_LEN_IF_MATCH</code></dd>
+<dt><code>TS_MIME_FIELD_IF_MODIFIED_SINCE</code></dt>
+<dd>"If-Modified-Since"</dd>
+<dd><code>TS_MIME_LEN_IF_MODIFIED_SINCE</code></dd>
+<dt><code>TS_MIME_FIELD_IF_NONE_MATCH</code></dt>
+<dd>"If-None-Match"</dd>
+<dd><code>TS_MIME_LEN_IF_NONE_MATCH</code></dd>
+<dt><code>TS_MIME_FIELD_IF_RANGE</code></dt>
+<dd>"If-Range"</dd>
+<dd><code>TS_MIME_LEN_IF_RANGE</code></dd>
+<dt><code>TS_MIME_FIELD_IF_UNMODIFIED_SINCE</code></dt>
+<dd>"If-Unmodified-Since"</dd>
+<dd><code>TS_MIME_LEN_IF_UNMODIFIED_SINCE</code></dd>
+<dt><code>TS_MIME_FIELD_KEEP_ALIVE</code></dt>
+<dd>"Keep-Alive"</dd>
+<dd><code>TS_MIME_LEN_KEEP_ALIVE</code></dd>
+<dt><code>TS_MIME_FIELD_KEYWORDS</code></dt>
+<dd>"Keywords"</dd>
+<dd><code>TS_MIME_LEN_KEYWORDS</code></dd>
+<dt><code>TS_MIME_FIELD_LAST_MODIFIED</code></dt>
+<dd>"Last-Modified"</dd>
+<dd><code>TS_MIME_LEN_LAST_MODIFIED</code></dd>
+<dt><code>TS_MIME_FIELD_LINES</code></dt>
+<dd>"Lines"</dd>
+<dd><code>TS_MIME_LEN_LINES</code></dd>
+<dt><code>TS_MIME_FIELD_LOCATION</code></dt>
+<dd>"Location"</dd>
+<dd><code>TS_MIME_LEN_LOCATION</code></dd>
+<dt><code>TS_MIME_FIELD_MAX_FORWARDS</code></dt>
+<dd>"Max-Forwards"</dd>
+<dd><code>TS_MIME_LEN_MAX_FORWARDS</code></dd>
+<dt><code>TS_MIME_FIELD_MESSAGE_ID</code></dt>
+<dd>"Message-ID"</dd>
+<dd><code>TS_MIME_LEN_MESSAGE_ID</code></dd>
+<dt><code>TS_MIME_FIELD_NEWSGROUPS</code></dt>
+<dd>"Newsgroups"</dd>
+<dd><code>TS_MIME_LEN_NEWSGROUPS</code></dd>
+<dt><code>TS_MIME_FIELD_ORGANIZATION</code></dt>
+<dd>"Organization"</dd>
+<dd><code>TS_MIME_LEN_ORGANIZATION</code></dd>
+<dt><code>TS_MIME_FIELD_PATH</code></dt>
+<dd>"Path"</dd>
+<dd><code>TS_MIME_LEN_PATH</code></dd>
+<dt><code>TS_MIME_FIELD_PRAGMA</code></dt>
+<dd>"Pragma"</dd>
+<dd><code>TS_MIME_LEN_PRAGMA</code></dd>
+<dt><code>TS_MIME_FIELD_PROXY_AUTHENTICATE</code></dt>
+<dd>"Proxy-Authenticate"</dd>
+<dd><code>TS_MIME_LEN_PROXY_AUTHENTICATE</code></dd>
+<dt><code>TS_MIME_FIELD_PROXY_AUTHORIZATION</code></dt>
+<dd>"Proxy-Authorization"</dd>
+<dd><code>TS_MIME_LEN_PROXY_AUTHORIZATION</code></dd>
+<dt><code>TS_MIME_FIELD_PROXY_CONNECTION</code></dt>
+<dd>"Proxy-Connection"</dd>
+<dd><code>TS_MIME_LEN_PROXY_CONNECTION</code></dd>
+<dt><code>TS_MIME_FIELD_PUBLIC</code></dt>
+<dd>"Public"</dd>
+<dd><code>TS_MIME_LEN_PUBLIC</code></dd>
+<dt><code>TS_MIME_FIELD_RANGE</code></dt>
+<dd>"Range"</dd>
+<dd><code>TS_MIME_LEN_RANGE</code></dd>
+<dt><code>TS_MIME_FIELD_REFERENCES</code></dt>
+<dd>"References"</dd>
+<dd><code>TS_MIME_LEN_REFERENCES</code></dd>
+<dt><code>TS_MIME_FIELD_REFERER</code></dt>
+<dd>"Referer"</dd>
+<dd><code>TS_MIME_LEN_REFERER</code></dd>
+<dt><code>TS_MIME_FIELD_REPLY_TO</code></dt>
+<dd>"Reply-To"</dd>
+<dd><code>TS_MIME_LEN_REPLY_TO</code></dd>
+<dt><code>TS_MIME_FIELD_RETRY_AFTER</code></dt>
+<dd>"Retry-After"</dd>
+<dd><code>TS_MIME_LEN_RETRY_AFTER</code></dd>
+<dt><code>TS_MIME_FIELD_SENDER</code></dt>
+<dd>"Sender"</dd>
+<dd><code>TS_MIME_LEN_SENDER</code></dd>
+<dt><code>TS_MIME_FIELD_SERVER</code></dt>
+<dd>"Server"</dd>
+<dd><code>TS_MIME_LEN_SERVER</code></dd>
+<dt><code>TS_MIME_FIELD_SET_COOKIE</code></dt>
+<dd>"Set-Cookie"</dd>
+<dd><code>TS_MIME_LEN_SET_COOKIE</code></dd>
+<dt><code>TS_MIME_FIELD_SUBJECT</code></dt>
+<dd>"Subject"</dd>
+<dd><code>TS_MIME_LEN_SUBJECTTS_MIME_LEN_SUBJECT</code></dd>
+<dt><code>TS_MIME_FIELD_SUMMARY</code></dt>
+<dd>"Summary"</dd>
+<dd><code>TS_MIME_LEN_SUMMARY</code></dd>
+<dt><code>TS_MIME_FIELD_TE</code></dt>
+<dd>"TE"</dd>
+<dd><code>TS_MIME_LEN_TE</code></dd>
+<dt><code>TS_MIME_FIELD_TRANSFER_ENCODING</code></dt>
+<dd>"Transfer-Encoding"</dd>
+<dd><code>TS_MIME_LEN_TRANSFER_ENCODING</code></dd>
+<dt><code>TS_MIME_FIELD_UPGRADE</code></dt>
+<dd>"Upgrade"</dd>
+<dd><code>TS_MIME_LEN_UPGRADE</code></dd>
+<dt><code>TS_MIME_FIELD_USER_AGENT</code></dt>
+<dd>"User-Agent"</dd>
+<dd><code>TS_MIME_LEN_USER_AGENT</code></dd>
+<dt><code>TS_MIME_FIELD_VARY</code></dt>
+<dd>"Vary"</dd>
+<dd><code>TS_MIME_LEN_VARY</code></dd>
+<dt><code>TS_MIME_FIELD_VIA</code></dt>
+<dd>"Via"</dd>
+<dd><code>TS_MIME_LEN_VIA</code></dd>
+<dt><code>TS_MIME_FIELD_WARNING</code></dt>
+<dd>"Warning"</dd>
+<dd><code>TS_MIME_LEN_WARNING</code></dd>
+<dt><code>TS_MIME_FIELD_WWW_AUTHENTICATE</code></dt>
+<dd>"Www-Authenticate"</dd>
+<dd><code>TS_MIME_LEN_WWW_AUTHENTICATE</code></dd>
+<dt><code>TS_MIME_FIELD_XREF</code></dt>
+<dd>"Xref"</dd>
+<dd><code>TS_MIME_LEN_XREF</code></dd>
+</dl>
+<p>The header field names above are defined in <code>ts.h</code> as <code>const char*</code> strings. 
+When Traffic Server sets the name portion of a header field (or any portion 
+for that matter), it quickly checks to see if the new value is one of the known 
+values. If it is, then Traffic Server stores a pointer into a global table 
+instead of storing the known value in the marshal buffer. The header field 
+names listed above are also pointers into this table, which enables simple 
+pointer comparison of the value returned from <code>TSMimeHdrFieldNameGet</code> with 
+one of the values listed above. It is recommended that you use the above values 
+when referring to one of the known header field names to avoid the possibility 
+of a spelling error.</p>
+<p>Traffic Server adds one important feature to MIME fields that you may not know 
+about: Traffic Server does not print a MIME field if the field name begins 
+with the '<code>@</code>' symbol. For example: a plugin can add the field "<code>@My-Field</code>" 
+to a header. Even though Traffic Server never sends that field out in a request 
+to an origin server or in a response to a client, it can be printed to Traffic 
+Server logs by defining a custom log configuration file that explicitly logs 
+such fields. This provides a useful mechanism for plugins to store information 
+about an object in one of the MIME headers associated with the object.</p>
+<p>The MIME header functions are listed below:</p>
+<ul>
+<li><a href="link/to/doxygen">TSMimeHdrFieldAppend</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldClone</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldCopy</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldCopyValues</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldCreate</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldDestroy</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldLengthGet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldNameGet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldNameSet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldNext</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldNextDup</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueAppend</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueAppend</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueDateGet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueDateInsert</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueDateSet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueInsert</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueIntGet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueIntSet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueStringGet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueStringInsert</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueStringSet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueUintGet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueUintInsert</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValueUintSet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValuesClear</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldValuesCount</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrClone</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrCopy</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrCreate</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrDestroy</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldFind</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldGet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldRemove</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldsClear</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrFieldsCount</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrLengthGet</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrParse</a></li>
+<li><a href="link/to/doxygen">TSMimeParserClear</a></li>
+<li><a href="link/to/doxygen">TSMimeParserCreate</a></li>
+<li><a href="link/to/doxygen">TSMimeParserDestroy</a></li>
+<li><a href="link/to/doxygen">TSMimeHdrPrint</a></li>
+</ul>
   </div>
 
   <div id="footer">

Modified: websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/urls.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/urls.en.html (original)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/sdk/http-headers/urls.en.html Sun Feb  6 01:36:19 2011
@@ -6,8 +6,8 @@
     
     <link rel="stylesheet" href="/styles/pygments_style.css" />
     
-    <title></title>
-    
+    <title>Apache Traffic Server™ Software Developers Kit</title>
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
   </head>
 
   <body>
@@ -15,11 +15,106 @@
 	    <span id="ts_logo">
 		  <a href="http://trafficserver.apache.org/"><img alt="Apache Traffic Server" src="/images/ts75.png" /></a>
 	  </span>
-	    <h1></h1>
+	    <h1>Apache Traffic Server™ Software Developers Kit</h1>
     </div>
 
   <div id="content">
-      
+      <p><a href="http-headers">Prev</a> - HTTP Headers</p>
+<p>MIME Headers - <a href="mime-headers">Next</a></p>
+<h2 id="URLs">URLs</h2>
+<p>API URL functions provide access to URL data stored in marshal buffers. The 
+URL functions can create, copy, retrieve or delete entire URLs; they can also 
+retrieve or modify parts of URLs, such as port or scheme information.</p>
+<p>The general form of an Internet URL is:</p>
+<div class="codehilite"><pre>   scheme://user:password@host:port/stuff
+</pre></div>
+
+
+<p>The URL data structure includes support for two specific types of internet 
+URLs. HTTP URLs have the form:</p>
+<div class="codehilite"><pre>   http://user:password@host:port/path;params?query#fragment
+</pre></div>
+
+
+<p>The URL port is stored as integer. All remaining parts of the 
+URL (scheme, user, etc.) are stored as strings. Traffic Server URL functions 
+are named according to the portion of the URL on which they operate. For instance, 
+the function that retrieves the host portion of a URL is named <code>TSUrlHostGet</code>. </p>
+<p>To facilitate fast comparisons and reduce storage size, Traffic Server defines 
+several preallocated scheme names.</p>
+<dl>
+<dt><code>TS_URL_SCHEME_FILE</code></dt>
+<dd>"file"</dd>
+<dd><code>TS_URL_LEN_FILE</code></dd>
+<dt><code>TS_URL_SCHEME_FTP</code></dt>
+<dd>"ftp"</dd>
+<dd><code>TS_URL_LEN_FTP</code></dd>
+<dt><code>TS_URL_SCHEME_GOPHER</code></dt>
+<dd>"gopher"</dd>
+<dd><code>TS_URL_LEN_GOPHER</code></dd>
+<dt><code>TS_URL_SCHEME_HTTP</code></dt>
+<dd>"http"</dd>
+<dd><code>TS_URL_LEN_HTTP</code></dd>
+<dt><code>TS_URL_SCHEME_HTTPS</code></dt>
+<dd>"https"</dd>
+<dd><code>TS_URL_LEN_HTTPS</code></dd>
+<dt><code>TS_URL_SCHEME_MAILTO</code></dt>
+<dd>"mailto"</dd>
+<dd><code>TS_URL_LEN_MAILTO</code></dd>
+<dt><code>TS_URL_SCHEME_NEWS</code></dt>
+<dd>"news"</dd>
+<dd><code>TS_URL_LEN_NEWS</code></dd>
+<dt><code>TS_URL_SCHEME_NNTP</code></dt>
+<dd>"nntp"</dd>
+<dd><code>TS_URL_LEN_NNTP</code></dd>
+<dt><code>TS_URL_SCHEME_PROSPERO</code></dt>
+<dd>"prospero"</dd>
+<dd><code>TS_URL_LEN_PROSPERO</code></dd>
+<dt><code>TS_URL_SCHEME_TELNET</code></dt>
+<dd>"telnet"</dd>
+<dd><code>TS_URL_LEN_TELNET</code></dd>
+<dt><code>TS_URL_SCHEME_WAIS</code></dt>
+<dd>"wais"</dd>
+<dd><code>TS_URL_LEN_WAIS</code></dd>
+</dl>
+<p>The scheme names above are defined in <code>ts.h</code> as <code>const</code> <code>char*</code> strings. When 
+Traffic Server sets the scheme portion of the URL (or any portion for that 
+matter), it quickly checks to see if 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 scheme values listed above are 
+also pointers into this table. This allows simple pointer comparison of the 
+value returned from <code>TSUrlSchemeGet</code> with one of the values listed above. 
+You should use the Traffic Server-defined values when referring to one of the 
+known schemes, since doing so can prevent the possibility of spelling errors. </p>
+<p>Traffic Server <strong>URL functions</strong> are listed below:</p>
+<p><a href="link/to/doxygen">TSUrlClone</a>
+<a href="link/to/doxygen">TSUrlCopy</a>
+<a href="link/to/doxygen">TSUrlCreate</a>
+<a href="link/to/doxygen">TSUrlDestroy</a>
+<a href="link/to/doxygen">TSUrlPrint</a>
+<a href="link/to/doxygen">TSUrlFtpTypeGet</a>
+<a href="link/to/doxygen">TSUrlFtpTypeSet</a>
+<a href="link/to/doxygen">TSUrlHostGet</a>
+<a href="link/to/doxygen">TSUrlHostSet</a>
+<a href="link/to/doxygen">TSUrlHttpFragmentGet</a>
+<a href="link/to/doxygen">TSUrlHttpFragmentSet</a>
+<a href="link/to/doxygen">TSUrlHttpParamsGet</a>
+<a href="link/to/doxygen">TSUrlHttpParamsSet</a>
+<a href="link/to/doxygen">TSUrlHttpQueryGet</a>
+<a href="link/to/doxygen">TSUrlHttpQuerySet</a>
+<a href="link/to/doxygen">TSUrlLengthGet</a>
+<a href="link/to/doxygen">TSUrlParse</a>
+<a href="link/to/doxygen">TSUrlPasswordGet</a>
+<a href="link/to/doxygen">TSUrlPasswordSet</a>
+<a href="link/to/doxygen">TSUrlPathGet</a>
+<a href="link/to/doxygen">TSUrlPathSet</a>
+<a href="link/to/doxygen">TSUrlPortGet</a>
+<a href="link/to/doxygen">TSUrlPortSet</a>
+<a href="link/to/doxygen">TSUrlSchemeGet</a>
+<a href="link/to/doxygen">TSUrlSchemeSet</a>
+<a href="link/to/doxygen">TSUrlStringGet</a>
+<a href="link/to/doxygen">TSUrlUserGet</a>
+<a href="link/to/doxygen">TSUrlUserSet</a></p>
   </div>
 
   <div id="footer">