3

シンプルな Dart HttpServerをセットアップしようとしています:

import 'dart:io';

void main() {
  HttpServer.bind(InternetAddress.ANY_IP_V4, 80).then((server) {
    server.listen((HttpRequest request) {
      request.response.write('Hello, world.');
      request.response.close();
      print(new DateTime.now());
      print(request.connectionInfo.remoteAddress);
      print(request.method);
      print(request.headers.toString());
      print("--------------");      
    });
  });

  print("listing....");

}

ブラウザー (Chrome) から localhost にアクセスすると、着信要求が2 回処理されているように見えます。

listing....
2013-11-07 15:19:24.478
InternetAddress('127.0.0.1', IP_V4)
GET
host: localhost:80
connection: keep-alive
cache-control: max-age=0
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
accept-encoding: gzip,deflate,sdch
accept-language: en-US,en;q=0.8
--------------
2013-11-07 15:19:24.554
InternetAddress('127.0.0.1', IP_V4)
GET
host: localhost:80
connection: keep-alive
accept: */*
user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
accept-encoding: gzip,deflate,sdch
accept-language: en-US,en;q=0.8
--------------

acceptこれら 2 つの要求は、ヘッダーを除いてほとんど同じに見えます。ブラウザがリクエストを 2 回起動しているようには見えません。

ここに画像の説明を入力

では、なぜリクエストが 2 回処理されるのでしょうか。

編集: Dart SDK バージョン 0.8.10.6_r30036

4

1 に答える 1

5

要求されたもの (要求インスタンスのメンバー) を出力しませんurl。それが 2 つの要求の違いです。

最初のリクエストは、開こうとしているファイルをリクエストします。おそらく/. 2 番目のリクエストは、ブラウザーによって内部的に発行さfavicon.icoれ、アドレス バー/タブ タイトルにアイコンを表示するように要求します。

于 2013-11-08T05:17:31.000 に答える