Version:
Delphi 2007 mit
Indy SVN (rev. 4065), Vista/Windows7 getestet
Problem:
Sofern IPv6 auf dem System aktiviert ist und der User per Hostnamen (z.B. ipsvm) auf dem Server zugreifen will, gibt es eine Verzögerung um 1 Sekunde pro Request. Direkter Zugriff (z.B. 127.0.0.1) funktioniert problemlos. Nachstellen kann man das am einfachsten mit Chrome, der für alle Anfragen eine Zeitleiste angibt (siehe Screenshot).
Workaround für Firefox ist das deaktiveren von IPv6 DNS Lookups oder deaktivieren von IPv6 auf allen Netzwerkadaptern.
Demo Programm:
Form + HTTPServer (Active = True)
Delphi-Quellcode:
procedure TForm4.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
if ARequestInfo.Document = '
/'
then
begin
AResponseInfo.ResponseNo := 200;
AResponseInfo.ContentText := '
<html><head><link rel="stylesheet" type="text/css" href="/a.css"/>' +
'
<link rel="stylesheet" type="text/css" href="/b.css"/>' +
'
<link rel="stylesheet" type="text/css" href="/c.css"/>' +
'
<link rel="stylesheet" type="text/css" href="/d.css"/>' +
'
<link rel="stylesheet" type="text/css" href="/e.css"/>' +
'
<link rel="stylesheet" type="text/css" href="/f.css"/>' +
'
<link rel="stylesheet" type="text/css" href="/g.css"/>' +
'
<link rel="stylesheet" type="text/css" href="/h.css"/>' +
'
<link rel="stylesheet" type="text/css" href="/i.css"/>' +
'
<link rel="stylesheet" type="text/css" href="/j.css"/></head><body>asd</body></html>';
end
else
AResponseInfo.ResponseText := '
asd';
end;
Es wäre super, falls jemand einen Tipp hat, was ich machen muss, damit das Problem nicht auftritt!?
Grüße,
paresy