Changeset 229 for draft-ietf-httpbis/latest/p1-messaging.xml
- Timestamp:
- 02/03/08 17:21:57 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.xml
r228 r229 813 813 814 814 <section title="Basic Rules" anchor="basic.rules"> 815 <x:anchor-alias value="OCTET"/> 816 <x:anchor-alias value="CHAR"/> 817 <x:anchor-alias value="ALPHA"/> 818 <x:anchor-alias value="DIGIT"/> 819 <x:anchor-alias value="CTL"/> 820 <x:anchor-alias value="CR"/> 821 <x:anchor-alias value="LF"/> 822 <x:anchor-alias value="SP"/> 823 <x:anchor-alias value="HTAB"/> 824 <x:anchor-alias value="CRLF"/> 825 <x:anchor-alias value="LWS"/> 826 <x:anchor-alias value="TEXT"/> 827 <x:anchor-alias value="HEX"/> 828 <x:anchor-alias value="token"/> 829 <x:anchor-alias value="separators"/> 830 <x:anchor-alias value="comment"/> 831 <x:anchor-alias value="ctext"/> 832 <x:anchor-alias value="quoted-string"/> 833 <x:anchor-alias value="qdtext"/> 834 <x:anchor-alias value="quoted-pair"/> 835 <t> 815 <t anchor="core.rules"> 816 <x:anchor-alias value="OCTET"/> 817 <x:anchor-alias value="CHAR"/> 818 <x:anchor-alias value="ALPHA"/> 819 <x:anchor-alias value="DIGIT"/> 820 <x:anchor-alias value="CTL"/> 821 <x:anchor-alias value="CR"/> 822 <x:anchor-alias value="LF"/> 823 <x:anchor-alias value="SP"/> 824 <x:anchor-alias value="HTAB"/> 825 <x:anchor-alias value="DQUOTE"/> 836 826 The following rules are used throughout this specification to 837 827 describe basic parsing constructs. The US-ASCII coded character set … … 839 829 </t> 840 830 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="OCTET"/><iref primary="true" item="Grammar" subitem="CHAR"/><iref primary="true" item="Grammar" subitem="ALPHA"/><iref primary="true" item="Grammar" subitem="DIGIT"/><iref primary="true" item="Grammar" subitem="CTL"/><iref primary="true" item="Grammar" subitem="CR"/><iref primary="true" item="Grammar" subitem="LF"/><iref primary="true" item="Grammar" subitem="SP"/><iref primary="true" item="Grammar" subitem="HTAB"/><iref primary="true" item="Grammar" subitem="DQUOTE"/> 841 OCTET= %x00-FF831 <x:ref>OCTET</x:ref> = %x00-FF 842 832 ; any 8-bit sequence of data 843 CHAR= %x01-7F833 <x:ref>CHAR</x:ref> = %x01-7F 844 834 ; any US-ASCII character, excluding NUL 845 ALPHA= %x41-5A | %x61-7A835 <x:ref>ALPHA</x:ref> = %x41-5A | %x61-7A 846 836 ; A-Z | a-z 847 DIGIT= %x30-39837 <x:ref>DIGIT</x:ref> = %x30-39 848 838 ; any US-ASCII digit "0".."9" 849 CTL= %x00-1F | %x7F839 <x:ref>CTL</x:ref> = %x00-1F | %x7F 850 840 ; (octets 0 - 31) and DEL (127) 851 CR= %x0D841 <x:ref>CR</x:ref> = %x0D 852 842 ; US-ASCII CR, carriage return (13) 853 LF= %x0A843 <x:ref>LF</x:ref> = %x0A 854 844 ; US-ASCII LF, linefeed (10) 855 SP= %x20845 <x:ref>SP</x:ref> = %x20 856 846 ; US-ASCII SP, space (32) 857 HTAB= %x09847 <x:ref>HTAB</x:ref> = %x09 858 848 ; US-ASCII HT, horizontal-tab (9) 859 DQUOTE= %x22849 <x:ref>DQUOTE</x:ref> = %x22 860 850 ; US-ASCII double-quote mark (34) 861 851 </artwork></figure> 862 <t> 852 <t anchor="rule.CRLF"> 853 <x:anchor-alias value="CRLF"/> 863 854 HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all 864 855 protocol elements except the entity-body (see <xref target="tolerant.applications"/> for … … 867 858 </t> 868 859 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="CRLF"/> 869 CRLF = CR LF 870 </artwork></figure> 871 <t> 860 <x:ref>CRLF</x:ref> = <x:ref>CR</x:ref> LF 861 </artwork></figure> 862 <t anchor="rule.LWS"> 863 <x:anchor-alias value="LWS"/> 872 864 HTTP/1.1 header field values can be folded onto multiple lines if the 873 865 continuation line begins with a space or horizontal tab. All linear … … 877 869 </t> 878 870 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="LWS"/> 879 LWS = [CRLF] 1*( SP | HTAB ) 880 </artwork></figure> 881 <t> 871 <x:ref>LWS</x:ref> = [<x:ref>CRLF</x:ref>] 1*( <x:ref>SP</x:ref> | <x:ref>HTAB</x:ref> ) 872 </artwork></figure> 873 <t anchor="rule.TEXT"> 874 <x:anchor-alias value="TEXT"/> 882 875 The TEXT rule is only used for descriptive field contents and values 883 876 that are not intended to be interpreted by the message parser. Words … … 887 880 </t> 888 881 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TEXT"/> 889 TEXT = %x20-7E | %x80-FF | LWS890 ; any OCTET except CTLs, but including LWS882 <x:ref>TEXT</x:ref> = %x20-7E | %x80-FF | <x:ref>LWS</x:ref> 883 ; any <x:ref>OCTET</x:ref> except <x:ref>CTL</x:ref>s, but including <x:ref>LWS</x:ref> 891 884 </artwork></figure> 892 885 <t> … … 895 888 replaced with a single SP before interpretation of the TEXT value. 896 889 </t> 897 <t> 890 <t anchor="rule.HEX"> 891 <x:anchor-alias value="HEX"/> 898 892 Hexadecimal numeric characters are used in several protocol elements. 899 893 </t> 900 894 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HEX"/> 901 HEX = "A" | "B" | "C" | "D" | "E" | "F" 902 | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT 903 </artwork></figure> 904 <t> 895 <x:ref>HEX</x:ref> = "A" | "B" | "C" | "D" | "E" | "F" 896 | "a" | "b" | "c" | "d" | "e" | "f" | <x:ref>DIGIT</x:ref> 897 </artwork></figure> 898 <t anchor="rule.token.separators"> 899 <x:anchor-alias value="tchar"/> 900 <x:anchor-alias value="token"/> 901 <x:anchor-alias value="separators"/> 905 902 Many HTTP/1.1 header field values consist of words separated by LWS 906 903 or special characters. These special characters &MUST; be in a quoted … … 909 906 </t> 910 907 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="token"/><iref primary="true" item="Grammar" subitem="tchar"/><iref primary="true" item="Grammar" subitem="separators"/> 911 separators= "(" | ")" | "<" | ">" | "@"912 | "," | ";" | ":" | "\" | DQUOTE908 <x:ref>separators</x:ref> = "(" | ")" | "<" | ">" | "@" 909 | "," | ";" | ":" | "\" | <x:ref>DQUOTE</x:ref> 913 910 | "/" | "[" | "]" | "?" | "=" 914 | "{" | "}" | SP | HTAB911 | "{" | "}" | <x:ref>SP</x:ref> | <x:ref>HTAB</x:ref> 915 912 916 tchar= "!" | "#" | "$" | "%" | "&" | "'" | "*"913 <x:ref>tchar</x:ref> = "!" | "#" | "$" | "%" | "&" | "'" | "*" 917 914 | "+" | "-" | "." | "^" | "_" | "`" | "|" | "~" 918 | DIGIT | ALPHA919 ; any CHAR except CTLs or separators915 | <x:ref>DIGIT</x:ref> | <x:ref>ALPHA</x:ref> 916 ; any <x:ref>CHAR</x:ref> except <x:ref>CTL</x:ref>s or <x:ref>separators</x:ref> 920 917 921 token = 1*tchar 922 </artwork></figure> 923 <t> 918 <x:ref>token</x:ref> = 1*<x:ref>tchar</x:ref> 919 </artwork></figure> 920 <t anchor="rule.comment"> 921 <x:anchor-alias value="comment"/> 922 <x:anchor-alias value="ctext"/> 924 923 Comments can be included in some HTTP header fields by surrounding 925 924 the comment text with parentheses. Comments are only allowed in … … 929 928 </t> 930 929 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="comment"/><iref primary="true" item="Grammar" subitem="ctext"/> 931 comment = "(" *( ctext | quoted-pair | comment ) ")" 932 ctext = <any TEXT excluding "(" and ")"> 933 </artwork></figure> 934 <t> 930 <x:ref>comment</x:ref> = "(" *( <x:ref>ctext</x:ref> | <x:ref>quoted-pair</x:ref> | <x:ref>comment</x:ref> ) ")" 931 <x:ref>ctext</x:ref> = <any <x:ref>TEXT</x:ref> excluding "(" and ")"> 932 </artwork></figure> 933 <t anchor="rule.quoted-string"> 934 <x:anchor-alias value="quoted-string"/> 935 <x:anchor-alias value="qdtext"/> 935 936 A string of text is parsed as a single word if it is quoted using 936 937 double-quote marks. 937 938 </t> 938 939 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-string"/><iref primary="true" item="Grammar" subitem="qdtext"/> 939 quoted-string = ( DQUOTE *(qdtext | quoted-pair ) DQUOTE ) 940 qdtext = <any TEXT excluding DQUOTE and "\"> 941 </artwork></figure> 942 <t> 940 <x:ref>quoted-string</x:ref> = ( <x:ref>DQUOTE</x:ref> *(<x:ref>qdtext</x:ref> | <x:ref>quoted-pair</x:ref> ) <x:ref>DQUOTE</x:ref> ) 941 <x:ref>qdtext</x:ref> = <any <x:ref>TEXT</x:ref> excluding <x:ref>DQUOTE</x:ref> and "\"> 942 </artwork></figure> 943 <t anchor="rule.quoted-pair"> 944 <x:anchor-alias value="quoted-pair"/> 943 945 The backslash character ("\") &MAY; be used as a single-character 944 946 quoting mechanism only within quoted-string and comment constructs. 945 947 </t> 946 948 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="quoted-pair"/> 947 quoted-pair = "\" CHAR949 <x:ref>quoted-pair</x:ref> = "\" <x:ref>CHAR</x:ref> 948 950 </artwork></figure> 949 951 </section> 950 952 951 953 <section title="ABNF Rules defined in other Parts of the Specification" anchor="abnf.dependencies"> 954 <x:anchor-alias value="request-header"/> 955 <x:anchor-alias value="response-header"/> 956 <x:anchor-alias value="accept-params"/> 957 <x:anchor-alias value="entity-body"/> 958 <x:anchor-alias value="entity-header"/> 959 <x:anchor-alias value="Cache-Control"/> 960 <x:anchor-alias value="Pragma"/> 961 <x:anchor-alias value="Warning"/> 952 962 <t> 953 963 The ABNF rules below are defined in other parts: 954 964 </t> 955 965 <figure><!-- Part2--><artwork type="abnf2616"> 956 request-header =<request-header, defined in &request-header-fields;>957 response-header= <response-header, defined in &response-header-fields;>966 <x:ref>request-header</x:ref> = <request-header, defined in &request-header-fields;> 967 <x:ref>response-header</x:ref> = <response-header, defined in &response-header-fields;> 958 968 </artwork></figure> 959 969 <figure><!-- Part3--><artwork type="abnf2616"> 960 accept-params= <accept-params, defined in &header-accept;>961 entity-body= <entity-body, defined in &entity-body;>962 entity-header= <entity-header, defined in &entity-header-fields;>970 <x:ref>accept-params</x:ref> = <accept-params, defined in &header-accept;> 971 <x:ref>entity-body</x:ref> = <entity-body, defined in &entity-body;> 972 <x:ref>entity-header</x:ref> = <entity-header, defined in &entity-header-fields;> 963 973 </artwork></figure> 964 974 <figure><!-- Part6--><artwork type="abnf2616"> 965 Cache-Control= <Cache-Control, defined in &header-pragma;>966 Pragma= <Pragma, defined in &header-pragma;>967 Warning= <Warning, defined in &header-warning;>975 <x:ref>Cache-Control</x:ref> = <Cache-Control, defined in &header-pragma;> 976 <x:ref>Pragma</x:ref> = <Pragma, defined in &header-pragma;> 977 <x:ref>Warning</x:ref> = <Warning, defined in &header-warning;> 968 978 </artwork></figure> 969 979 </section> … … 974 984 975 985 <section title="HTTP Version" anchor="http.version"> 986 <x:anchor-alias value="HTTP-Version"/> 976 987 <t> 977 988 HTTP uses a "<major>.<minor>" numbering scheme to indicate versions … … 994 1005 </t> 995 1006 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-Version"/> 996 HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT1007 <x:ref>HTTP-Version</x:ref> = "HTTP" "/" 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref> 997 1008 </artwork></figure> 998 1009 <t> … … 1054 1065 1055 1066 <section title="General Syntax" anchor="general.syntax"> 1067 <x:anchor-alias value="absoluteURI"/> 1068 <x:anchor-alias value="authority"/> 1069 <x:anchor-alias value="fragment"/> 1070 <x:anchor-alias value="path-absolute"/> 1071 <x:anchor-alias value="port"/> 1072 <x:anchor-alias value="query"/> 1073 <x:anchor-alias value="relativeURI"/> 1074 <x:anchor-alias value="uri-host"/> 1056 1075 <t> 1057 1076 URIs in HTTP can be represented in absolute form or relative to some … … 1066 1085 </t> 1067 1086 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="absoluteURI"/><iref primary="true" item="Grammar" subitem="authority"/><iref primary="true" item="Grammar" subitem="path-absolute"/><iref primary="true" item="Grammar" subitem="port"/><iref primary="true" item="Grammar" subitem="query"/><iref primary="true" item="Grammar" subitem="relativeURI"/><iref primary="true" item="Grammar" subitem="uri-host"/> 1068 absoluteURI= <absoluteURI, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>1069 authority= <authority, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2"/>>1070 fragment= <fragment, defined in <xref target="RFC2396" x:fmt="," x:sec="4.1"/>>1071 path-absolute= <abs_path, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>>1072 port= <port, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>1073 query= <query, defined in <xref target="RFC2396" x:fmt="," x:sec="3.4"/>>1074 relativeURI= <relativeURI, defined in <xref target="RFC2396" x:fmt="," x:sec="5"/>>1075 uri-host= <host, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>>1087 <x:ref>absoluteURI</x:ref> = <absoluteURI, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>> 1088 <x:ref>authority</x:ref> = <authority, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2"/>> 1089 <x:ref>fragment</x:ref> = <fragment, defined in <xref target="RFC2396" x:fmt="," x:sec="4.1"/>> 1090 <x:ref>path-absolute</x:ref> = <abs_path, defined in <xref target="RFC2396" x:fmt="," x:sec="3"/>> 1091 <x:ref>port</x:ref> = <port, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>> 1092 <x:ref>query</x:ref> = <query, defined in <xref target="RFC2396" x:fmt="," x:sec="3.4"/>> 1093 <x:ref>relativeURI</x:ref> = <relativeURI, defined in <xref target="RFC2396" x:fmt="," x:sec="5"/>> 1094 <x:ref>uri-host</x:ref> = <host, defined in <xref target="RFC2396" x:fmt="," x:sec="3.2.2"/>> 1076 1095 </artwork></figure> 1077 1096 <t> … … 1095 1114 1096 1115 <section title="http URL" anchor="http.url"> 1116 <x:anchor-alias value="http-URL"/> 1097 1117 <t> 1098 1118 The "http" scheme is used to locate network resources via the HTTP … … 1101 1121 </t> 1102 1122 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="http-URL"/> 1103 http-URL = "http:" "//" uri-host [ ":" port]1104 [ path-absolute [ "?" query]]1123 <x:ref>http-URL</x:ref> = "http:" "//" <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] 1124 [ <x:ref>path-absolute</x:ref> [ "?" <x:ref>query</x:ref> ]] 1105 1125 </artwork></figure> 1106 1126 <t> … … 1149 1169 <section title="Date/Time Formats" anchor="date.time.formats"> 1150 1170 <section title="Full Date" anchor="full.date"> 1171 <x:anchor-alias value="HTTP-date"/> 1172 <x:anchor-alias value="rfc1123-date"/> 1173 <x:anchor-alias value="rfc850-date"/> 1174 <x:anchor-alias value="asctime-date"/> 1175 <x:anchor-alias value="date1"/> 1176 <x:anchor-alias value="date2"/> 1177 <x:anchor-alias value="date3"/> 1178 <x:anchor-alias value="rfc1123-date"/> 1179 <x:anchor-alias value="time"/> 1180 <x:anchor-alias value="wkday"/> 1181 <x:anchor-alias value="weekday"/> 1182 <x:anchor-alias value="month"/> 1151 1183 <t> 1152 1184 HTTP applications have historically allowed three different formats … … 1185 1217 </t> 1186 1218 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-date"/><iref primary="true" item="Grammar" subitem="rfc1123-date"/><iref primary="true" item="Grammar" subitem="rfc850-date"/><iref primary="true" item="Grammar" subitem="asctime-date"/><iref primary="true" item="Grammar" subitem="date1"/><iref primary="true" item="Grammar" subitem="date2"/><iref primary="true" item="Grammar" subitem="date3"/><iref primary="true" item="Grammar" subitem="time"/><iref primary="true" item="Grammar" subitem="wkday"/><iref primary="true" item="Grammar" subitem="weekday"/><iref primary="true" item="Grammar" subitem="month"/> 1187 HTTP-date = rfc1123-date | rfc850-date | asctime-date1188 rfc1123-date = wkday "," SP date1 SP time SP"GMT"1189 rfc850-date = weekday "," SP date2 SP time SP"GMT"1190 asctime-date = wkday SP date3 SP time SP 4DIGIT1191 date1 = 2DIGIT SP month SP 4DIGIT1219 <x:ref>HTTP-date</x:ref> = <x:ref>rfc1123-date</x:ref> | <x:ref>rfc850-date</x:ref> | <x:ref>asctime-date</x:ref> 1220 <x:ref>rfc1123-date</x:ref> = <x:ref>wkday</x:ref> "," <x:ref>SP</x:ref> date1 <x:ref>SP</x:ref> time <x:ref>SP</x:ref> "GMT" 1221 <x:ref>rfc850-date</x:ref> = <x:ref>weekday</x:ref> "," <x:ref>SP</x:ref> date2 <x:ref>SP</x:ref> time <x:ref>SP</x:ref> "GMT" 1222 <x:ref>asctime-date</x:ref> = <x:ref>wkday</x:ref> <x:ref>SP</x:ref> <x:ref>date3</x:ref> <x:ref>SP</x:ref> <x:ref>time</x:ref> <x:ref>SP</x:ref> 4<x:ref>DIGIT</x:ref> 1223 <x:ref>date1</x:ref> = 2<x:ref>DIGIT</x:ref> <x:ref>SP</x:ref> <x:ref>month</x:ref> <x:ref>SP</x:ref> 4<x:ref>DIGIT</x:ref> 1192 1224 ; day month year (e.g., 02 Jun 1982) 1193 date2 = 2DIGIT "-" month "-" 2DIGIT1225 <x:ref>date2</x:ref> = 2<x:ref>DIGIT</x:ref> "-" <x:ref>month</x:ref> "-" 2<x:ref>DIGIT</x:ref> 1194 1226 ; day-month-year (e.g., 02-Jun-82) 1195 date3 = month SP ( 2DIGIT | ( SP 1DIGIT))1227 <x:ref>date3</x:ref> = <x:ref>month</x:ref> <x:ref>SP</x:ref> ( 2<x:ref>DIGIT</x:ref> | ( <x:ref>SP</x:ref> 1<x:ref>DIGIT</x:ref> )) 1196 1228 ; month day (e.g., Jun 2) 1197 time = 2DIGIT ":" 2DIGIT ":" 2DIGIT1229 <x:ref>time</x:ref> = 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref> ":" 2<x:ref>DIGIT</x:ref> 1198 1230 ; 00:00:00 - 23:59:59 1199 wkday= "Mon" | "Tue" | "Wed"1231 <x:ref>wkday</x:ref> = "Mon" | "Tue" | "Wed" 1200 1232 | "Thu" | "Fri" | "Sat" | "Sun" 1201 weekday= "Monday" | "Tuesday" | "Wednesday"1233 <x:ref>weekday</x:ref> = "Monday" | "Tuesday" | "Wednesday" 1202 1234 | "Thursday" | "Friday" | "Saturday" | "Sunday" 1203 month= "Jan" | "Feb" | "Mar" | "Apr"1235 <x:ref>month</x:ref> = "Jan" | "Feb" | "Mar" | "Apr" 1204 1236 | "May" | "Jun" | "Jul" | "Aug" 1205 1237 | "Sep" | "Oct" | "Nov" | "Dec" … … 1215 1247 1216 1248 <section title="Transfer Codings" anchor="transfer.codings"> 1249 <x:anchor-alias value="parameter"/> 1250 <x:anchor-alias value="transfer-coding"/> 1251 <x:anchor-alias value="transfer-extension"/> 1217 1252 <t> 1218 1253 Transfer-coding values are used to indicate an encoding … … 1223 1258 </t> 1224 1259 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="transfer-coding"/><iref primary="true" item="Grammar" subitem="transfer-extension"/> 1225 transfer-coding = "chunked" | transfer-extension 1226 transfer-extension = token *( ";" parameter ) 1227 </artwork></figure> 1228 <t> 1260 <x:ref>transfer-coding</x:ref> = "chunked" | <x:ref>transfer-extension</x:ref> 1261 <x:ref>transfer-extension</x:ref> = <x:ref>token</x:ref> *( ";" <x:ref>parameter</x:ref> ) 1262 </artwork></figure> 1263 <t anchor="rule.parameter"> 1264 <x:anchor-alias value="attribute"/> 1265 <x:anchor-alias value="parameter"/> 1266 <x:anchor-alias value="value"/> 1229 1267 Parameters are in the form of attribute/value pairs. 1230 1268 </t> 1231 1269 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="parameter"/><iref primary="true" item="Grammar" subitem="attribute"/><iref primary="true" item="Grammar" subitem="value"/> 1232 parameter = attribute "=" value1233 attribute = token1234 value = token | quoted-string1270 <x:ref>parameter</x:ref> = <x:ref>attribute</x:ref> "=" <x:ref>value</x:ref> 1271 <x:ref>attribute</x:ref> = <x:ref>token</x:ref> 1272 <x:ref>value</x:ref> = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> 1235 1273 </artwork></figure> 1236 1274 <t> … … 1275 1313 1276 1314 <section title="Chunked Transfer Coding" anchor="chunked.transfer.encoding"> 1315 <x:anchor-alias value="chunk"/> 1316 <x:anchor-alias value="Chunked-Body"/> 1317 <x:anchor-alias value="chunk-data"/> 1318 <x:anchor-alias value="chunk-extension"/> 1319 <x:anchor-alias value="chunk-ext-name"/> 1320 <x:anchor-alias value="chunk-ext-val"/> 1321 <x:anchor-alias value="chunk-size"/> 1322 <x:anchor-alias value="last-chunk"/> 1323 <x:anchor-alias value="trailer-part"/> 1277 1324 <t> 1278 1325 The chunked encoding modifies the body of a message in order to … … 1284 1331 </t> 1285 1332 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Chunked-Body"/><iref primary="true" item="Grammar" subitem="chunk"/><iref primary="true" item="Grammar" subitem="chunk-size"/><iref primary="true" item="Grammar" subitem="last-chunk"/><iref primary="true" item="Grammar" subitem="chunk-extension"/><iref primary="true" item="Grammar" subitem="chunk-ext-name"/><iref primary="true" item="Grammar" subitem="chunk-ext-val"/><iref primary="true" item="Grammar" subitem="chunk-data"/><iref primary="true" item="Grammar" subitem="trailer-part"/> 1286 Chunked-Body = *chunk1287 last-chunk1288 trailer-part1289 CRLF1333 <x:ref>Chunked-Body</x:ref> = *<x:ref>chunk</x:ref> 1334 <x:ref>last-chunk</x:ref> 1335 <x:ref>trailer-part</x:ref> 1336 <x:ref>CRLF</x:ref> 1290 1337 1291 chunk = chunk-size [ chunk-extension ] CRLF1292 chunk-data CRLF1293 chunk-size = 1*HEX1294 last-chunk = 1*("0") [ chunk-extension ] CRLF1338 <x:ref>chunk</x:ref> = <x:ref>chunk-size</x:ref> [ <x:ref>chunk-extension</x:ref> ] <x:ref>CRLF</x:ref> 1339 <x:ref>chunk-data</x:ref> <x:ref>CRLF</x:ref> 1340 <x:ref>chunk-size</x:ref> = 1*<x:ref>HEX</x:ref> 1341 <x:ref>last-chunk</x:ref> = 1*("0") [ <x:ref>chunk-extension</x:ref> ] <x:ref>CRLF</x:ref> 1295 1342 1296 chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val] )1297 chunk-ext-name = token1298 chunk-ext-val = token | quoted-string1299 chunk-data = 1*OCTET; a sequence of chunk-size octets1300 trailer-part = *(entity-header CRLF)1343 <x:ref>chunk-extension</x:ref>= *( ";" <x:ref>chunk-ext-name</x:ref> [ "=" <x:ref>chunk-ext-val</x:ref> ] ) 1344 <x:ref>chunk-ext-name</x:ref> = <x:ref>token</x:ref> 1345 <x:ref>chunk-ext-val</x:ref> = <x:ref>token</x:ref> | <x:ref>quoted-string</x:ref> 1346 <x:ref>chunk-data</x:ref> = 1*<x:ref>OCTET</x:ref> ; a sequence of chunk-size octets 1347 <x:ref>trailer-part</x:ref> = *(<x:ref>entity-header</x:ref> <x:ref>CRLF</x:ref>) 1301 1348 </artwork></figure> 1302 1349 <t> … … 1365 1412 1366 1413 <section title="Product Tokens" anchor="product.tokens"> 1414 <x:anchor-alias value="product"/> 1415 <x:anchor-alias value="product-version"/> 1367 1416 <t> 1368 1417 Product tokens are used to allow communicating applications to … … 1374 1423 </t> 1375 1424 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="product"/><iref primary="true" item="Grammar" subitem="product-version"/> 1376 product = token ["/" product-version]1377 product-version = token1425 <x:ref>product</x:ref> = <x:ref>token</x:ref> ["/" <x:ref>product-version</x:ref>] 1426 <x:ref>product-version</x:ref> = <x:ref>token</x:ref> 1378 1427 </artwork></figure> 1379 1428 <t> … … 1399 1448 1400 1449 <section title="Message Types" anchor="message.types"> 1450 <x:anchor-alias value="generic-message"/> 1451 <x:anchor-alias value="HTTP-message"/> 1452 <x:anchor-alias value="start-line"/> 1401 1453 <t> 1402 1454 HTTP messages consist of requests from client to server and responses … … 1404 1456 </t> 1405 1457 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="HTTP-message"/> 1406 HTTP-message = Request | Response; HTTP/1.1 messages1458 <x:ref>HTTP-message</x:ref> = <x:ref>Request</x:ref> | <x:ref>Response</x:ref> ; HTTP/1.1 messages 1407 1459 </artwork></figure> 1408 1460 <t> … … 1415 1467 </t> 1416 1468 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="generic-message"/><iref primary="true" item="Grammar" subitem="start-line"/> 1417 generic-message = start-line1418 *( message-header CRLF)1419 CRLF1420 [ message-body]1421 start-line = Request-Line | Status-Line1469 <x:ref>generic-message</x:ref> = <x:ref>start-line</x:ref> 1470 *(<x:ref>message-header</x:ref> <x:ref>CRLF</x:ref>) 1471 <x:ref>CRLF</x:ref> 1472 [ <x:ref>message-body</x:ref> ] 1473 <x:ref>start-line</x:ref> = <x:ref>Request-Line</x:ref> | <x:ref>Status-Line</x:ref> 1422 1474 </artwork></figure> 1423 1475 <t> … … 1436 1488 1437 1489 <section title="Message Headers" anchor="message.headers"> 1490 <x:anchor-alias value="field-content"/> 1491 <x:anchor-alias value="field-name"/> 1492 <x:anchor-alias value="field-value"/> 1493 <x:anchor-alias value="message-header"/> 1438 1494 <t> 1439 1495 HTTP header fields, which include general-header (<xref target="general.header.fields"/>), … … 1451 1507 </t> 1452 1508 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="message-header"/><iref primary="true" item="Grammar" subitem="field-name"/><iref primary="true" item="Grammar" subitem="field-value"/><iref primary="true" item="Grammar" subitem="field-content"/> 1453 message-header = field-name ":" [ field-value]1454 field-name = token1455 field-value = *( field-content | LWS)1456 field-content= <field content>1457 ; the OCTETs making up the field-value1458 ; and consisting of either * TEXTor combinations1459 ; of token, separators, and quoted-string1509 <x:ref>message-header</x:ref> = <x:ref>field-name</x:ref> ":" [ <x:ref>field-value</x:ref> ] 1510 <x:ref>field-name</x:ref> = <x:ref>token</x:ref> 1511 <x:ref>field-value</x:ref> = *( <x:ref>field-content</x:ref> | <x:ref>LWS</x:ref> ) 1512 <x:ref>field-content</x:ref> = <field content> 1513 ; the <x:ref>OCTET</x:ref>s making up the field-value 1514 ; and consisting of either *<x:ref>TEXT</x:ref> or combinations 1515 ; of <x:ref>token</x:ref>, <x:ref>separators</x:ref>, and <x:ref>quoted-string</x:ref> 1460 1516 </artwork></figure> 1461 1517 <t> … … 1490 1546 1491 1547 <section title="Message Body" anchor="message.body"> 1548 <x:anchor-alias value="message-body"/> 1492 1549 <t> 1493 1550 The message-body (if any) of an HTTP message is used to carry the … … 1497 1554 </t> 1498 1555 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="message-body"/> 1499 message-body = entity-body1500 | <entity-body encoded as per Transfer-Encoding>1556 <x:ref>message-body</x:ref> = <x:ref>entity-body</x:ref> 1557 | <entity-body encoded as per <x:ref>Transfer-Encoding</x:ref>> 1501 1558 </artwork></figure> 1502 1559 <t> … … 1621 1678 1622 1679 <section title="General Header Fields" anchor="general.header.fields"> 1680 <x:anchor-alias value="general-header"/> 1623 1681 <t> 1624 1682 There are a few header fields which have general applicability for … … 1628 1686 </t> 1629 1687 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="general-header"/> 1630 general-header = Cache-Control; &header-cache-control;1631 | Connection; <xref target="header.connection"/>1632 | Date; <xref target="header.date"/>1633 | Pragma; &header-pragma;1634 | Trailer; <xref target="header.trailer"/>1635 | Transfer-Encoding; <xref target="header.transfer-encoding"/>1636 | Upgrade; <xref target="header.upgrade"/>1637 | Via; <xref target="header.via"/>1638 | Warning; &header-warning;1688 <x:ref>general-header</x:ref> = <x:ref>Cache-Control</x:ref> ; &header-cache-control; 1689 | <x:ref>Connection</x:ref> ; <xref target="header.connection"/> 1690 | <x:ref>Date</x:ref> ; <xref target="header.date"/> 1691 | <x:ref>Pragma</x:ref> ; &header-pragma; 1692 | <x:ref>Trailer</x:ref> ; <xref target="header.trailer"/> 1693 | <x:ref>Transfer-Encoding</x:ref> ; <xref target="header.transfer-encoding"/> 1694 | <x:ref>Upgrade</x:ref> ; <xref target="header.upgrade"/> 1695 | <x:ref>Via</x:ref> ; <xref target="header.via"/> 1696 | <x:ref>Warning</x:ref> ; &header-warning; 1639 1697 </artwork></figure> 1640 1698 <t> … … 1650 1708 1651 1709 <section title="Request" anchor="request"> 1710 <x:anchor-alias value="Request"/> 1652 1711 <t> 1653 1712 A request message from a client to a server includes, within the … … 1657 1716 <!-- Host ; should be moved here eventually --> 1658 1717 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request"/> 1659 Request = Request-Line; <xref target="request-line"/>1660 *(( general-header; <xref target="general.header.fields"/>1661 | request-header; &request-header-fields;1662 | entity-header ) CRLF) ; &entity-header-fields;1663 CRLF1664 [ message-body] ; <xref target="message.body"/>1718 <x:ref>Request</x:ref> = <x:ref>Request-Line</x:ref> ; <xref target="request-line"/> 1719 *(( <x:ref>general-header</x:ref> ; <xref target="general.header.fields"/> 1720 | <x:ref>request-header</x:ref> ; &request-header-fields; 1721 | <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref>) ; &entity-header-fields; 1722 <x:ref>CRLF</x:ref> 1723 [ <x:ref>message-body</x:ref> ] ; <xref target="message.body"/> 1665 1724 </artwork></figure> 1666 1725 1667 1726 <section title="Request-Line" anchor="request-line"> 1727 <x:anchor-alias value="Request-Line"/> 1668 1728 <t> 1669 1729 The Request-Line begins with a method token, followed by the … … 1673 1733 </t> 1674 1734 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-Line"/> 1675 Request-Line = Method SP Request-URI SP HTTP-Version CRLF1735 <x:ref>Request-Line</x:ref> = <x:ref>Method</x:ref> <x:ref>SP</x:ref> <x:ref>Request-URI</x:ref> <x:ref>SP</x:ref> <x:ref>HTTP-Version</x:ref> <x:ref>CRLF</x:ref> 1676 1736 </artwork></figure> 1677 1737 1678 1738 <section title="Method" anchor="method"> 1739 <x:anchor-alias value="Method"/> 1679 1740 <t> 1680 1741 The Method token indicates the method to be performed on the … … 1682 1743 </t> 1683 1744 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Method"/><iref primary="true" item="Grammar" subitem="extension-method"/> 1684 Method = token1745 <x:ref>Method</x:ref> = <x:ref>token</x:ref> 1685 1746 </artwork></figure> 1686 1747 </section> 1687 1748 1688 1749 <section title="Request-URI" anchor="request-uri"> 1750 <x:anchor-alias value="Request-URI"/> 1689 1751 <t> 1690 1752 The Request-URI is a Uniform Resource Identifier (<xref target="uri"/>) and … … 1692 1754 </t> 1693 1755 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Request-URI"/> 1694 Request-URI= "*"1695 | absoluteURI1696 | ( path-absolute [ "?" query] )1697 | authority1756 <x:ref>Request-URI</x:ref> = "*" 1757 | <x:ref>absoluteURI</x:ref> 1758 | ( <x:ref>path-absolute</x:ref> [ "?" <x:ref>query</x:ref> ] ) 1759 | <x:ref>authority</x:ref> 1698 1760 </artwork></figure> 1699 1761 <t> … … 1812 1874 1813 1875 <section title="Response" anchor="response"> 1876 <x:anchor-alias value="Response"/> 1814 1877 <t> 1815 1878 After receiving and interpreting a request message, a server responds … … 1817 1880 </t> 1818 1881 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Response"/> 1819 Response = Status-Line; <xref target="status-line"/>1820 *(( general-header; <xref target="general.header.fields"/>1821 | response-header; &response-header-fields;1822 | entity-header ) CRLF) ; &entity-header-fields;1823 CRLF1824 [ message-body] ; <xref target="message.body"/>1882 <x:ref>Response</x:ref> = <x:ref>Status-Line</x:ref> ; <xref target="status-line"/> 1883 *(( <x:ref>general-header</x:ref> ; <xref target="general.header.fields"/> 1884 | <x:ref>response-header</x:ref> ; &response-header-fields; 1885 | <x:ref>entity-header</x:ref> ) <x:ref>CRLF</x:ref>) ; &entity-header-fields; 1886 <x:ref>CRLF</x:ref> 1887 [ <x:ref>message-body</x:ref> ] ; <xref target="message.body"/> 1825 1888 </artwork></figure> 1826 1889 1827 1890 <section title="Status-Line" anchor="status-line"> 1891 <x:anchor-alias value="Status-Line"/> 1828 1892 <t> 1829 1893 The first line of a Response message is the Status-Line, consisting … … 1833 1897 </t> 1834 1898 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Line"/> 1835 Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF1899 <x:ref>Status-Line</x:ref> = <x:ref>HTTP-Version</x:ref> <x:ref>SP</x:ref> <x:ref>Status-Code</x:ref> <x:ref>SP</x:ref> <x:ref>Reason-Phrase</x:ref> <x:ref>CRLF</x:ref> 1836 1900 </artwork></figure> 1837 1901 1838 1902 <section title="Status Code and Reason Phrase" anchor="status.code.and.reason.phrase"> 1903 <x:anchor-alias value="Reason-Phrase"/> 1904 <x:anchor-alias value="Status-Code"/> 1839 1905 <t> 1840 1906 The Status-Code element is a 3-digit integer result code of the … … 1873 1939 </t> 1874 1940 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Status-Code"/><iref primary="true" item="Grammar" subitem="extension-code"/><iref primary="true" item="Grammar" subitem="Reason-Phrase"/> 1875 Status-Code = 3DIGIT1876 Reason-Phrase = *<TEXT, excluding CR, LF>1941 <x:ref>Status-Code</x:ref> = 3<x:ref>DIGIT</x:ref> 1942 <x:ref>Reason-Phrase</x:ref> = *<<x:ref>TEXT</x:ref>, excluding <x:ref>CR</x:ref>, <x:ref>LF</x:ref>> 1877 1943 </artwork></figure> 1878 1944 </section> … … 2294 2360 <iref primary="true" item="Connection header" x:for-anchor=""/> 2295 2361 <iref primary="true" item="Headers" subitem="Connection" x:for-anchor=""/> 2362 <x:anchor-alias value="Connection"/> 2363 <x:anchor-alias value="connection-token"/> 2296 2364 <t> 2297 2365 The Connection general-header field allows the sender to specify … … 2303 2371 </t> 2304 2372 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Connection"/><iref primary="true" item="Grammar" subitem="connection-token"/> 2305 Connection = "Connection" ":" 1#(connection-token)2306 connection-token = token2373 <x:ref>Connection</x:ref> = "Connection" ":" 1#(<x:ref>connection-token</x:ref>) 2374 <x:ref>connection-token</x:ref> = <x:ref>token</x:ref> 2307 2375 </artwork></figure> 2308 2376 <t> … … 2354 2422 <iref primary="true" item="Content-Length header" x:for-anchor=""/> 2355 2423 <iref primary="true" item="Headers" subitem="Content-Length" x:for-anchor=""/> 2424 <x:anchor-alias value="Content-Length"/> 2356 2425 <t> 2357 2426 The Content-Length entity-header field indicates the size of the … … 2361 2430 </t> 2362 2431 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Content-Length"/> 2363 Content-Length = "Content-Length" ":" 1*DIGIT2432 <x:ref>Content-Length</x:ref> = "Content-Length" ":" 1*<x:ref>DIGIT</x:ref> 2364 2433 </artwork></figure> 2365 2434 <t> … … 2391 2460 <iref primary="true" item="Date header" x:for-anchor=""/> 2392 2461 <iref primary="true" item="Headers" subitem="Date" x:for-anchor=""/> 2462 <x:anchor-alias value="Date"/> 2393 2463 <t> 2394 2464 The Date general-header field represents the date and time at which … … 2398 2468 </t> 2399 2469 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Date"/> 2400 Date = "Date" ":" HTTP-date2470 <x:ref>Date</x:ref> = "Date" ":" <x:ref>HTTP-date</x:ref> 2401 2471 </artwork></figure> 2402 2472 <t> … … 2467 2537 <iref primary="true" item="Host header" x:for-anchor=""/> 2468 2538 <iref primary="true" item="Headers" subitem="Host" x:for-anchor=""/> 2539 <x:anchor-alias value="Host"/> 2469 2540 <t> 2470 2541 The Host request-header field specifies the Internet host and port … … 2478 2549 </t> 2479 2550 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Host"/> 2480 Host = "Host" ":" uri-host [ ":" port] ; <xref target="http.url"/>2551 <x:ref>Host</x:ref> = "Host" ":" <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] ; <xref target="http.url"/> 2481 2552 </artwork></figure> 2482 2553 <t> … … 2511 2582 <iref primary="true" item="TE header" x:for-anchor=""/> 2512 2583 <iref primary="true" item="Headers" subitem="TE" x:for-anchor=""/> 2584 <x:anchor-alias value="TE"/> 2585 <x:anchor-alias value="t-codings"/> 2513 2586 <t> 2514 2587 The TE request-header field indicates what extension transfer-codings … … 2520 2593 </t> 2521 2594 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="TE"/><iref primary="true" item="Grammar" subitem="t-codings"/> 2522 TE = "TE" ":" #( t-codings)2523 t-codings = "trailers" | ( transfer-extension [ accept-params] )2595 <x:ref>TE</x:ref> = "TE" ":" #( <x:ref>t-codings</x:ref> ) 2596 <x:ref>t-codings</x:ref> = "trailers" | ( <x:ref>transfer-extension</x:ref> [ <x:ref>accept-params</x:ref> ] ) 2524 2597 </artwork></figure> 2525 2598 <t> … … 2585 2658 <iref primary="true" item="Trailer header" x:for-anchor=""/> 2586 2659 <iref primary="true" item="Headers" subitem="Trailer" x:for-anchor=""/> 2660 <x:anchor-alias value="Trailer"/> 2587 2661 <t> 2588 2662 The Trailer general field value indicates that the given set of … … 2591 2665 </t> 2592 2666 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Trailer"/> 2593 Trailer = "Trailer" ":" 1#field-name2667 <x:ref>Trailer</x:ref> = "Trailer" ":" 1#<x:ref>field-name</x:ref> 2594 2668 </artwork></figure> 2595 2669 <t> … … 2618 2692 <iref primary="true" item="Transfer-Encoding header" x:for-anchor=""/> 2619 2693 <iref primary="true" item="Headers" subitem="Transfer-Encoding" x:for-anchor=""/> 2694 <x:anchor-alias value="Transfer-Encoding"/> 2620 2695 <t> 2621 2696 The Transfer-Encoding general-header field indicates what (if any) … … 2626 2701 </t> 2627 2702 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Transfer-Encoding"/> 2628 Transfer-Encoding = "Transfer-Encoding" ":" 1#transfer-coding2703 <x:ref>Transfer-Encoding</x:ref> = "Transfer-Encoding" ":" 1#<x:ref>transfer-coding</x:ref> 2629 2704 </artwork></figure> 2630 2705 <t> … … 2649 2724 <iref primary="true" item="Upgrade header" x:for-anchor=""/> 2650 2725 <iref primary="true" item="Headers" subitem="Upgrade" x:for-anchor=""/> 2726 <x:anchor-alias value="Upgrade"/> 2651 2727 <t> 2652 2728 The Upgrade general-header allows the client to specify what … … 2657 2733 </t> 2658 2734 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Upgrade"/> 2659 Upgrade = "Upgrade" ":" 1#product2735 <x:ref>Upgrade</x:ref> = "Upgrade" ":" 1#<x:ref>product</x:ref> 2660 2736 </artwork></figure> 2661 2737 <t> … … 2712 2788 <iref primary="true" item="Via header" x:for-anchor=""/> 2713 2789 <iref primary="true" item="Headers" subitem="Via" x:for-anchor=""/> 2790 <x:anchor-alias value="protocol-name"/> 2791 <x:anchor-alias value="protocol-version"/> 2792 <x:anchor-alias value="pseudonym"/> 2793 <x:anchor-alias value="received-by"/> 2794 <x:anchor-alias value="received-protocol"/> 2795 <x:anchor-alias value="Via"/> 2714 2796 <t> 2715 2797 The Via general-header field &MUST; be used by gateways and proxies to … … 2722 2804 </t> 2723 2805 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Via"/><iref primary="true" item="Grammar" subitem="received-protocol"/><iref primary="true" item="Grammar" subitem="protocol-name"/><iref primary="true" item="Grammar" subitem="protocol-version"/><iref primary="true" item="Grammar" subitem="received-by"/><iref primary="true" item="Grammar" subitem="pseudonym"/> 2724 Via = "Via" ":" 1#( received-protocol received-by [ comment] )2725 received-protocol = [ protocol-name "/" ] protocol-version2726 protocol-name = token2727 protocol-version = token2728 received-by = ( uri-host [ ":" port ] ) | pseudonym2729 pseudonym = token2806 <x:ref>Via</x:ref> = "Via" ":" 1#( <x:ref>received-protocol</x:ref> <x:ref>received-by</x:ref> [ <x:ref>comment</x:ref> ] ) 2807 <x:ref>received-protocol</x:ref> = [ <x:ref>protocol-name</x:ref> "/" ] <x:ref>protocol-version</x:ref> 2808 <x:ref>protocol-name</x:ref> = <x:ref>token</x:ref> 2809 <x:ref>protocol-version</x:ref> = <x:ref>token</x:ref> 2810 <x:ref>received-by</x:ref> = ( <x:ref>uri-host</x:ref> [ ":" <x:ref>port</x:ref> ] ) | <x:ref>pseudonym</x:ref> 2811 <x:ref>pseudonym</x:ref> = <x:ref>token</x:ref> 2730 2812 </artwork></figure> 2731 2813 <t>
Note: See TracChangeset
for help on using the changeset viewer.