Netty ChannelUpstreamHandler и конвейер HTTP - PullRequest
1 голос
/ 29 ноября 2011

Я играл с примером Netty org.jboss.netty.example.http.snoop и заметил, что Firefox выполняет 4 запроса, что приводит к созданию 4 HttpRequestHandler экземпляров, а Internet Explorer 8/9 делает 2 запроса, что приводит к созданию 2 HttpRequestHandler экземпляров.

Я думаю, что это связано с конвейерной передачей HTTP 1.1, однако даже после изменения ключей network.http.pipelining.* для FireFox и записей реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings для IE Netty ведет себя одинаково.

Мой вопрос: это ожидаемое и правильное или я что-то упустил, и возможно ли настроить Netty для отбрасывания последующих идемпотентных запросов, или это должно быть реализовано HttpRequestHandler в конце концов?

1 Ответ

1 голос
/ 29 ноября 2011

Вы должны распечатать путь, чтобы узнать, что запрашивает FF. Я почти уверен, что это favicon.ico, который запрашивается несколько раз (механизм повтора) из-за неверного формата, отправляемого примером Snoop.

редактировать. Я проверил это, и это действительно favicon, который запрашивается три раза:

Thread[New I/O server worker #1-3,5,main] - [id: 0x57c52e72, /0:0:0:0:0:0:0:1:63056 => /0:0:0:0:0:0:0:1:8080] RECEIVED: DefaultHttpRequest(chunked: false) GET / HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive
Thread[New I/O server worker #1-3,5,main] - GET
Thread[New I/O server worker #1-3,5,main] - /

Thread[New I/O server worker #1-3,5,main] - [id: 0x57c52e72, /0:0:0:0:0:0:0:1:63056 => /0:0:0:0:0:0:0:1:8080] RECEIVED: DefaultHttpRequest(chunked: false) GET /favicon.ico HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0 Accept: image/png,image/*;q=0.8,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive
Thread[New I/O server worker #1-3,5,main] - GET
Thread[New I/O server worker #1-3,5,main] - /favicon.ico

Thread[New I/O server worker #1-3,5,main] - [id: 0x57c52e72, /0:0:0:0:0:0:0:1:63056 => /0:0:0:0:0:0:0:1:8080] RECEIVED: DefaultHttpRequest(chunked: false) GET /favicon.ico HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive
Thread[New I/O server worker #1-3,5,main] - GET
Thread[New I/O server worker #1-3,5,main] - /favicon.ico

Thread[New I/O server worker #1-3,5,main] - [id: 0x57c52e72, /0:0:0:0:0:0:0:1:63056 => /0:0:0:0:0:0:0:1:8080] RECEIVED: DefaultHttpRequest(chunked: false) GET /favicon.ico HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive
Thread[New I/O server worker #1-3,5,main] - GET
Thread[New I/O server worker #1-3,5,main] - /favicon.ico
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...