Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Side by Side Diff: sdk/lib/io/http.dart

Issue 12313105: Change the HTTP header field names to lowercase (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | sdk/lib/io/http_headers.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of dart.io; 5 part of dart.io;
6 6
7 /** 7 /**
8 * HTTP status codes. 8 * HTTP status codes.
9 */ 9 */
10 abstract class HttpStatus { 10 abstract class HttpStatus {
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 162
163 /** 163 /**
164 * Access to the HTTP headers for requests and responses. In some 164 * Access to the HTTP headers for requests and responses. In some
165 * situations the headers will be immutable and the mutating methods 165 * situations the headers will be immutable and the mutating methods
166 * will then throw exceptions. 166 * will then throw exceptions.
167 * 167 *
168 * For all operations on HTTP headers the header name is 168 * For all operations on HTTP headers the header name is
169 * case-insensitive. 169 * case-insensitive.
170 */ 170 */
171 abstract class HttpHeaders { 171 abstract class HttpHeaders {
172 static const ACCEPT = "Accept"; 172 static const ACCEPT = "accept";
173 static const ACCEPT_CHARSET = "Accept-Charset"; 173 static const ACCEPT_CHARSET = "accept-charset";
174 static const ACCEPT_ENCODING = "Accept-Encoding"; 174 static const ACCEPT_ENCODING = "accept-encoding";
175 static const ACCEPT_LANGUAGE = "Accept-Language"; 175 static const ACCEPT_LANGUAGE = "accept-language";
176 static const ACCEPT_RANGES = "Accept-Ranges"; 176 static const ACCEPT_RANGES = "accept-ranges";
177 static const AGE = "Age"; 177 static const AGE = "age";
178 static const ALLOW = "Allow"; 178 static const ALLOW = "allow";
179 static const AUTHORIZATION = "Authorization"; 179 static const AUTHORIZATION = "authorization";
180 static const CACHE_CONTROL = "Cache-Control"; 180 static const CACHE_CONTROL = "cache-control";
181 static const CONNECTION = "Connection"; 181 static const CONNECTION = "connection";
182 static const CONTENT_ENCODING = "Content-Encoding"; 182 static const CONTENT_ENCODING = "content-encoding";
183 static const CONTENT_LANGUAGE = "Content-Language"; 183 static const CONTENT_LANGUAGE = "content-language";
184 static const CONTENT_LENGTH = "Content-Length"; 184 static const CONTENT_LENGTH = "content-length";
185 static const CONTENT_LOCATION = "Content-Location"; 185 static const CONTENT_LOCATION = "content-location";
186 static const CONTENT_MD5 = "Content-MD5"; 186 static const CONTENT_MD5 = "content-md5";
187 static const CONTENT_RANGE = "Content-Range"; 187 static const CONTENT_RANGE = "content-range";
188 static const CONTENT_TYPE = "Content-Type"; 188 static const CONTENT_TYPE = "content-type";
189 static const DATE = "Date"; 189 static const DATE = "date";
190 static const ETAG = "ETag"; 190 static const ETAG = "etag";
191 static const EXPECT = "Expect"; 191 static const EXPECT = "expect";
192 static const EXPIRES = "Expires"; 192 static const EXPIRES = "expires";
193 static const FROM = "From"; 193 static const FROM = "from";
194 static const HOST = "Host"; 194 static const HOST = "host";
195 static const IF_MATCH = "If-Match"; 195 static const IF_MATCH = "if-match";
196 static const IF_MODIFIED_SINCE = "If-Modified-Since"; 196 static const IF_MODIFIED_SINCE = "if-modified-since";
197 static const IF_NONE_MATCH = "If-None-Match"; 197 static const IF_NONE_MATCH = "if-none-match";
198 static const IF_RANGE = "If-Range"; 198 static const IF_RANGE = "if-range";
199 static const IF_UNMODIFIED_SINCE = "If-Unmodified-Since"; 199 static const IF_UNMODIFIED_SINCE = "if-unmodified-since";
200 static const LAST_MODIFIED = "Last-Modified"; 200 static const LAST_MODIFIED = "last-modified";
201 static const LOCATION = "Location"; 201 static const LOCATION = "location";
202 static const MAX_FORWARDS = "Max-Forwards"; 202 static const MAX_FORWARDS = "max-forwards";
203 static const PRAGMA = "Pragma"; 203 static const PRAGMA = "pragma";
204 static const PROXY_AUTHENTICATE = "Proxy-Authenticate"; 204 static const PROXY_AUTHENTICATE = "proxy-authenticate";
205 static const PROXY_AUTHORIZATION = "Proxy-Authorization"; 205 static const PROXY_AUTHORIZATION = "proxy-authorization";
206 static const RANGE = "Range"; 206 static const RANGE = "range";
207 static const REFERER = "Referer"; 207 static const REFERER = "referer";
208 static const RETRY_AFTER = "Retry-After"; 208 static const RETRY_AFTER = "retry-after";
209 static const SERVER = "Server"; 209 static const SERVER = "server";
210 static const TE = "TE"; 210 static const TE = "te";
211 static const TRAILER = "Trailer"; 211 static const TRAILER = "trailer";
212 static const TRANSFER_ENCODING = "Transfer-Encoding"; 212 static const TRANSFER_ENCODING = "transfer-encoding";
213 static const UPGRADE = "Upgrade"; 213 static const UPGRADE = "upgrade";
214 static const USER_AGENT = "User-Agent"; 214 static const USER_AGENT = "user-agent";
215 static const VARY = "Vary"; 215 static const VARY = "vary";
216 static const VIA = "Via"; 216 static const VIA = "via";
217 static const WARNING = "Warning"; 217 static const WARNING = "warning";
218 static const WWW_AUTHENTICATE = "WWW-Authenticate"; 218 static const WWW_AUTHENTICATE = "www-authenticate";
219
220 // Cookie headers from RFC 6265.
221 static const COOKIE = "cookie";
222 static const SET_COOKIE = "set-cookie";
219 223
220 static const GENERAL_HEADERS = const [CACHE_CONTROL, 224 static const GENERAL_HEADERS = const [CACHE_CONTROL,
221 CONNECTION, 225 CONNECTION,
222 DATE, 226 DATE,
223 PRAGMA, 227 PRAGMA,
224 TRAILER, 228 TRAILER,
225 TRANSFER_ENCODING, 229 TRANSFER_ENCODING,
226 UPGRADE, 230 UPGRADE,
227 VIA, 231 VIA,
228 WARNING]; 232 WARNING];
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 * Enumerates the headers, applying the function [f] to each 323 * Enumerates the headers, applying the function [f] to each
320 * header. The header name passed in [:name:] will be all lower 324 * header. The header name passed in [:name:] will be all lower
321 * case. 325 * case.
322 */ 326 */
323 void forEach(void f(String name, List<String> values)); 327 void forEach(void f(String name, List<String> values));
324 328
325 /** 329 /**
326 * Disables folding for the header named [name] when sending the HTTP 330 * Disables folding for the header named [name] when sending the HTTP
327 * header. By default, multiple header values are folded into a 331 * header. By default, multiple header values are folded into a
328 * single header line by separating the values with commas. The 332 * single header line by separating the values with commas. The
329 * Set-Cookie header has folding disabled by default. 333 * 'set-cookie' header has folding disabled by default.
330 */ 334 */
331 void noFolding(String name); 335 void noFolding(String name);
332 336
333 /** 337 /**
334 * Gets and sets the date. The value of this property will 338 * Gets and sets the date. The value of this property will
335 * reflect the "DateTime" header. 339 * reflect the 'date' header.
336 */ 340 */
337 DateTime date; 341 DateTime date;
338 342
339 /** 343 /**
340 * Gets and sets the expiry date. The value of this property will 344 * Gets and sets the expiry date. The value of this property will
341 * reflect the "Expires" header. 345 * reflect the 'expires' header.
342 */ 346 */
343 DateTime expires; 347 DateTime expires;
344 348
345 /** 349 /**
346 * Gets and sets the "if-modified-since" date. The value of this property will 350 * Gets and sets the "if-modified-since" date. The value of this property will
347 * reflect the "if-modified-since" header. 351 * reflect the "if-modified-since" header.
348 */ 352 */
349 DateTime ifModifiedSince; 353 DateTime ifModifiedSince;
350 354
351 /** 355 /**
352 * Gets and sets the host part of the "Host" header for the 356 * Gets and sets the host part of the 'host' header for the
353 * connection. 357 * connection.
354 */ 358 */
355 String host; 359 String host;
356 360
357 /** 361 /**
358 * Gets and sets the port part of the "Host" header for the 362 * Gets and sets the port part of the 'host' header for the
359 * connection. 363 * connection.
360 */ 364 */
361 int port; 365 int port;
362 366
363 /** 367 /**
364 * Gets and sets the content type. Note that the content type in the 368 * Gets and sets the content type. Note that the content type in the
365 * header will only be updated if this field is set 369 * header will only be updated if this field is set
366 * directly. Mutating the returned current value will have no 370 * directly. Mutating the returned current value will have no
367 * effect. 371 * effect.
368 */ 372 */
369 ContentType contentType; 373 ContentType contentType;
370 } 374 }
371 375
372 376
373 /** 377 /**
374 * Representation of a header value in the form: 378 * Representation of a header value in the form:
375 * 379 *
376 * [:value; parameter1=value1; parameter2=value2:] 380 * [:value; parameter1=value1; parameter2=value2:]
377 * 381 *
378 * [HeaderValue] can be used to conveniently build and parse header 382 * [HeaderValue] can be used to conveniently build and parse header
379 * values on this form. 383 * values on this form.
380 * 384 *
381 * To build an [:Accepts:] header with the value 385 * To build an [:accepts:] header with the value
382 * 386 *
383 * text/plain; q=0.3, text/html 387 * text/plain; q=0.3, text/html
384 * 388 *
385 * use code like this: 389 * use code like this:
386 * 390 *
387 * HttpClientRequest request = ...; 391 * HttpClientRequest request = ...;
388 * var v = new HeaderValue(); 392 * var v = new HeaderValue();
389 * v.value = "text/plain"; 393 * v.value = "text/plain";
390 * v.parameters["q"] = "0.3" 394 * v.parameters["q"] = "0.3"
391 * request.headers.add(HttpHeaders.ACCEPT, v); 395 * request.headers.add(HttpHeaders.ACCEPT, v);
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 /** 507 /**
504 * Gets and sets the character set. 508 * Gets and sets the character set.
505 */ 509 */
506 String charset; 510 String charset;
507 } 511 }
508 512
509 513
510 /** 514 /**
511 * Representation of a cookie. For cookies received by the server as 515 * Representation of a cookie. For cookies received by the server as
512 * Cookie header values only [:name:] and [:value:] fields will be 516 * Cookie header values only [:name:] and [:value:] fields will be
513 * set. When building a cookie for the Set-Cookie header in the server 517 * set. When building a cookie for the 'set-cookie' header in the server
514 * and when receiving cookies in the client as Set-Cookie headers all 518 * and when receiving cookies in the client as 'set-cookie' headers all
515 * fields can be used. 519 * fields can be used.
516 */ 520 */
517 abstract class Cookie { 521 abstract class Cookie {
518 /** 522 /**
519 * Creates a new cookie optionally setting the name and value. 523 * Creates a new cookie optionally setting the name and value.
520 */ 524 */
521 factory Cookie([String name, String value]) => new _Cookie(name, value); 525 factory Cookie([String name, String value]) => new _Cookie(name, value);
522 526
523 /** 527 /**
524 * Creates a new cookie by parsing a header value from a Set-Cookie 528 * Creates a new cookie by parsing a header value from a 'set-cookie'
525 * header. 529 * header.
526 */ 530 */
527 factory Cookie.fromSetCookieValue(String value) { 531 factory Cookie.fromSetCookieValue(String value) {
528 return new _Cookie.fromSetCookieValue(value); 532 return new _Cookie.fromSetCookieValue(value);
529 } 533 }
530 534
531 /** 535 /**
532 * Gets and sets the name. 536 * Gets and sets the name.
533 */ 537 */
534 String name; 538 String name;
(...skipping 30 matching lines...) Expand all
565 bool secure; 569 bool secure;
566 570
567 /** 571 /**
568 * Gets and sets whether this cookie is HTTP only. 572 * Gets and sets whether this cookie is HTTP only.
569 */ 573 */
570 bool httpOnly; 574 bool httpOnly;
571 575
572 /** 576 /**
573 * Returns the formatted string representation of the cookie. The 577 * Returns the formatted string representation of the cookie. The
574 * string representation can be used for for setting the Cookie or 578 * string representation can be used for for setting the Cookie or
575 * Set-Cookie headers 579 * 'set-cookie' headers
576 */ 580 */
577 String toString(); 581 String toString();
578 } 582 }
579 583
580 584
581 /** 585 /**
582 * Http request delivered to the HTTP server callback. The [HttpRequest] is a 586 * Http request delivered to the HTTP server callback. The [HttpRequest] is a
583 * [Stream] of the body content of the request. Listen to the body to handle the 587 * [Stream] of the body content of the request. Listen to the body to handle the
584 * data and be notified once the entire body is received. 588 * data and be notified once the entire body is received.
585 */ 589 */
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 * request. 692 * request.
689 */ 693 */
690 bool persistentConnection; 694 bool persistentConnection;
691 695
692 /** 696 /**
693 * Returns the response headers. 697 * Returns the response headers.
694 */ 698 */
695 HttpHeaders get headers; 699 HttpHeaders get headers;
696 700
697 /** 701 /**
698 * Cookies to set in the client (in the Set-Cookie header). 702 * Cookies to set in the client (in the 'set-cookie' header).
699 */ 703 */
700 List<Cookie> get cookies; 704 List<Cookie> get cookies;
701 705
702 /** 706 /**
703 * Detaches the underlying socket from the HTTP server. When the 707 * Detaches the underlying socket from the HTTP server. When the
704 * socket is detached the HTTP server will no longer perform any 708 * socket is detached the HTTP server will no longer perform any
705 * operations on it. 709 * operations on it.
706 * 710 *
707 * This is normally used when a HTTP upgrade request is received 711 * This is normally used when a HTTP upgrade request is received
708 * and the communication should continue with a different protocol. 712 * and the communication should continue with a different protocol.
(...skipping 18 matching lines...) Expand all
727 * to force close the idle sockets. 731 * to force close the idle sockets.
728 */ 732 */
729 abstract class HttpClient { 733 abstract class HttpClient {
730 static const int DEFAULT_HTTP_PORT = 80; 734 static const int DEFAULT_HTTP_PORT = 80;
731 static const int DEFAULT_HTTPS_PORT = 443; 735 static const int DEFAULT_HTTPS_PORT = 443;
732 736
733 factory HttpClient() => new _HttpClient(); 737 factory HttpClient() => new _HttpClient();
734 738
735 /** 739 /**
736 * Opens a HTTP connection. The returned [HttpClientRequest] is used to 740 * Opens a HTTP connection. The returned [HttpClientRequest] is used to
737 * fill in the content of the request before sending it. The "Host" header for 741 * fill in the content of the request before sending it. The 'host' header for
738 * the request will be set to the value [host]:[port]. This can be overridden 742 * the request will be set to the value [host]:[port]. This can be overridden
739 * through the [HttpClientRequest] interface before the request is sent. 743 * through the [HttpClientRequest] interface before the request is sent.
740 * NOTE if [host] is an IP address this will still be set in the "Host" 744 * NOTE if [host] is an IP address this will still be set in the 'host'
741 * header. 745 * header.
742 */ 746 */
743 Future<HttpClientRequest> open(String method, 747 Future<HttpClientRequest> open(String method,
744 String host, 748 String host,
745 int port, 749 int port,
746 String path); 750 String path);
747 751
748 /** 752 /**
749 * Opens a HTTP connection. The returned [HttpClientRequest] is used to 753 * Opens a HTTP connection. The returned [HttpClientRequest] is used to
750 * fill in the content of the request before sending it. The "Host" header for 754 * fill in the content of the request before sending it. The 'hosth header for
751 * the request will be set to the value [host]:[port]. This can be overridden 755 * the request will be set to the value [host]:[port]. This can be overridden
752 * through the [HttpClientRequest] interface before the request is sent. 756 * through the [HttpClientRequest] interface before the request is sent.
753 * NOTE if [host] is an IP address this will still be set in the "Host" 757 * NOTE if [host] is an IP address this will still be set in the 'host'
754 * header. 758 * header.
755 */ 759 */
756 Future<HttpClientRequest> openUrl(String method, Uri url); 760 Future<HttpClientRequest> openUrl(String method, Uri url);
757 761
758 /** 762 /**
759 * Opens a HTTP connection using the GET method. See [open] for 763 * Opens a HTTP connection using the GET method. See [open] for
760 * details. Using this method to open a HTTP connection will set the 764 * details. Using this method to open a HTTP connection will set the
761 * content length to 0. 765 * content length to 0.
762 */ 766 */
763 Future<HttpClientRequest> get(String host, int port, String path); 767 Future<HttpClientRequest> get(String host, int port, String path);
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 * which is also the default. 879 * which is also the default.
876 */ 880 */
877 int contentLength; 881 int contentLength;
878 882
879 /** 883 /**
880 * Returns the request headers. 884 * Returns the request headers.
881 */ 885 */
882 HttpHeaders get headers; 886 HttpHeaders get headers;
883 887
884 /** 888 /**
885 * Cookies to present to the server (in the Cookie header). 889 * Cookies to present to the server (in the 'cookie' header).
886 */ 890 */
887 List<Cookie> get cookies; 891 List<Cookie> get cookies;
888 892
889 /** 893 /**
890 * Gets and sets the requested persistent connection state. 894 * Gets and sets the requested persistent connection state.
891 * The default value is [:true:]. 895 * The default value is [:true:].
892 */ 896 */
893 bool persistentConnection; 897 bool persistentConnection;
894 898
895 /** 899 /**
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1013 * Detach the underlying socket from the HTTP client. When the 1017 * Detach the underlying socket from the HTTP client. When the
1014 * socket is detached the HTTP client will no longer perform any 1018 * socket is detached the HTTP client will no longer perform any
1015 * operations on it. 1019 * operations on it.
1016 * 1020 *
1017 * This is normally used when a HTTP upgrade is negotiated and the 1021 * This is normally used when a HTTP upgrade is negotiated and the
1018 * communication should continue with a different protocol. 1022 * communication should continue with a different protocol.
1019 */ 1023 */
1020 Future<Socket> detachSocket(); 1024 Future<Socket> detachSocket();
1021 1025
1022 /** 1026 /**
1023 * Cookies set by the server (from the Set-Cookie header). 1027 * Cookies set by the server (from the 'set-cookie' header).
1024 */ 1028 */
1025 List<Cookie> get cookies; 1029 List<Cookie> get cookies;
1026 1030
1027 /** 1031 /**
1028 * Returns the certificate of the HTTPS server providing the response. 1032 * Returns the certificate of the HTTPS server providing the response.
1029 * Returns null if the connection is not a secure TLS or SSL connection. 1033 * Returns null if the connection is not a secure TLS or SSL connection.
1030 */ 1034 */
1031 X509Certificate get certificate; 1035 X509Certificate get certificate;
1032 1036
1033 /** 1037 /**
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 class RedirectLimitExceededException extends RedirectException { 1125 class RedirectLimitExceededException extends RedirectException {
1122 const RedirectLimitExceededException(List<RedirectInfo> redirects) 1126 const RedirectLimitExceededException(List<RedirectInfo> redirects)
1123 : super("Redirect limit exceeded", redirects); 1127 : super("Redirect limit exceeded", redirects);
1124 } 1128 }
1125 1129
1126 1130
1127 class RedirectLoopException extends RedirectException { 1131 class RedirectLoopException extends RedirectException {
1128 const RedirectLoopException(List<RedirectInfo> redirects) 1132 const RedirectLoopException(List<RedirectInfo> redirects)
1129 : super("Redirect loop detected", redirects); 1133 : super("Redirect loop detected", redirects);
1130 } 1134 }
OLDNEW
« no previous file with comments | « no previous file | sdk/lib/io/http_headers.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698