Halihallo
also in Perl kenne ich mich nicht aus, hätte aber wahrscheinlich den einen oder anderen reg. Ausdruck anders geschrieben. Beispielsweise
$n =~ s/\015|\012//g;
$v =~ s/\015|\012//g;
Da wäre ein
$n =~ s/\015?\012//g;
$v =~ s/\015?\012//g;
ich glaube, dass beide RegExp genau das selbe machen ;)
wegen dem g, da werden bei mir _alle_ \015 und _alle_ \012 gelöscht, bei dir macht es genau das selbe
näher an den Specs, weil es da heißt, dass nicht auf CR geprüft werden muss (tolerante Apps). Bei deinem reg. Ausdruck wäre es egal was da am Ende steht. Ein kleiner aber feiner Unterschied.
ich sehe keinen Unterschied...
Aber eigentlich wollte ich nur fragen wo dein $header geleert wird, damit nicht alte Werte drinstehen?
Ich habe in etwa das übernommen, was Christian gepostet hat. Dort wird eigentlich nur das Connection: Feld gelöscht und durch Connection: close ersetzt. Dann wird die ganze Page eingelesen und an den Client ungeändert zurückgesendet...
Ich glaube, dass es an dem Status 302 hängt bzw. an Proxy-Connection: Keep-Alive??? - Mal schaun, was ihr dazu meint:
302 steht doch normalerweise für "Moved Temporarily". Warum steht in deinem Log "302 Found"?
Ja, s. unten.
Was das Keep-Alive betrifft, ist es so, sofern ich die Specs richtig verstanden habe, dass bei HTTP/1.0 explizit erklärt werden muss, dass eine Verbindung persistent ist (keep-alive, aufrecht erhalten) und bei HTTP/1.1 ist es genau umgekehrt. Es wird stets davon ausgegangen, dass eine Verbindung persistent ist, und durch ein "Connection: close" wird mitgeteilt, dass sie geschlossen wird.
Ist mir klar. Ich kann mir nur nicht erklären, warum der Browser in eine Endlosschleife kommt, wenn ich www.google.ch aufrufe. 302 => Temporarely Moved => denkt da der Browser, dass er es einfach solange versuchen soll, bis er eine gültige 200-er als Antwort bekommt?
Könntest du die entspr. Headers (Request, Response) komplett posten? Denn da wäre es für mich als Perl-Unwissender einfacher einen Fehler zu erkennen.
Her der Auszug. Ich poste hier zwei Requests. Wenn ich google.ch aufrufe, geht er wie gesagt in einen Endlosrequest über und versucht immer wieder von neuem google.ch zu öffnen. "Request-Header" und "Request-Content" sind die Daten, die der Browser an den Proxi sendet. "Request answer" ist dann die Antwort von google.ch (den Content lass ich lieber nicht loggen, sonst ist meine HD ziemlich schnell voll ;))
Viele Grüsse und Danke
Philipp
--- LOG ---
Request on http://www.google.ch/
Request-Header:
Proxy-Connection: Keep-Alive
Host: www.google.ch
Cookie: PREF=ID=2ee932854a6b966a:LD=de:TM=1029179593:LM=1029179593:S=yXSkNolyuIg
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Accept-Language: de
Request-Content: (Length: )
Request answer from http://www.google.ch/
HTTP/1.0 302 Found
Content-Length: 151
Connection: Close
Server: GWS/2.0
Content-Type: text/html
Date: Mon, 19 Aug 2002 09:07:49 GMT
Location: http://www.google.ch/
Set-Cookie: PREF=ID=1f1fd7ba1fe8791b:TM=1029748069:LM=1029748069:S=IT0SXd9GVIY; domain=.google.com; path=/; expires=Sun, 17-Jan-2038 19:14:07 GMT
Request on http://www.google.ch/
Request-Header:
Proxy-Connection: Keep-Alive
Host: www.google.ch
Cookie: PREF=ID=2ee932854a6b966a:LD=de:TM=1029179593:LM=1029179593:S=yXSkNolyuIg
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Accept-Language: de
Request-Content: (Length: )
Request answer from http://www.google.ch/
HTTP/1.0 302 Found
Content-Length: 151
Connection: Close
Server: GWS/2.0
Content-Type: text/html
Date: Mon, 19 Aug 2002 09:07:50 GMT
Location: http://www.google.ch/
Set-Cookie: PREF=ID=44111b0c6b28a7b8:TM=1029748070:LM=1029748070:S=ZUCAc68Nae4; domain=.google.com; path=/; expires=Sun, 17-Jan-2038 19:14:07 GMT