Wenn Sie fragen, wie Sie Ihre Installation von Firefox ändern können, probieren Sie Folgendes aus: Geben Sie about:config
in die Adressleiste ein. Klicken Sie auf die Seite "Garantie ungültig machen", wenn eine angezeigt wird. Wechseln Sie network.http.version
zu1.1
Wie Sie Firefox dazu bringen, HTTP / 1.1 zu verwenden
Es gibt diesen Webserver in Python (Code siehe Ende des Beitrags). Bei jeder Verbindung von Firefox meldet der Webserver HTTP / 1.0.
*.*.*.* - - [17/Feb/2016 15:50:59] "GET /?size=100 HTTP/1.0" 200 -
Mit wget
wird HTTP / 1.1 verwendet:
*.*.*.* - - [17/Feb/2016 15:16:37] "GET /?size=488 HTTP/1.1" 200 -
Mit netcat
:
$ nc *.*.*.* 8000 GET ?size=10 HTTP/1.1 HTTP/1.1 200 OK Server: BaseHTTP/0.3 Python/2.7.10 Date: Wed, 17 Feb 2016 14:58:48 GMT Content-Length: 10 [content]
und
$ nc *.*.*.* 8000 GET ?size=20 HTTP/1.0 HTTP/1.1 200 OK Server: BaseHTTP/0.3 Python/2.7.10 Date: Wed, 17 Feb 2016 14:58:59 GMT Content-Length: 20 [content]
Wie kann Firefox angewiesen werden, HTTP / 1.1 zu verwenden?
"""HTTP Server which generates pseudo-random traffic.""" import BaseHTTPServer import cgi import random import SocketServer import string class ThreadingSimpleServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): pass class TrafficHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): """Server which only generates traffic.""" def do_POST(self): """Does the same thing as GET.""" try: self._gen_traffic(self._find_size_post()) except (KeyError, ValueError): self._fail() def do_GET(self): """Generate traffic as per size parameter. If no size parameter is given, fail. """ try: self._gen_traffic(self._find_size_get()) except (IndexError, ValueError): self._fail() def _find_size_get(self): """Returns the value of the size parameter.""" paramstring = self.path.split('?')[1] for parampair in paramstring.split('&'): (var, val) = parampair.split('=') if var == 'size': return int(val) raise IndexError('no size parameter') def _find_size_post(self): """Returns the value of the size parameter.""" ctype, pdict = cgi.parse_header(self.headers.getheader('content-type')) if ctype == 'multipart/form-data': postvars = cgi.parse_multipart(self.rfile, pdict) elif ctype == 'application/x-www-form-urlencoded': length = int(self.headers.getheader('content-length')) postvars = cgi.parse_qs(self.rfile.read(length), keep_blank_values=1) else: raise KeyError('wrong input format: ' + ctype) return int(postvars['size']) def _fail(self): """Returns HTTP error message""" self.send_error(400, "Bad Request: could not parse the size parameter") # td: background thread def _gen_traffic(self, size): """Generate size bytes of traffic""" self.send_response(200) self.send_header("Content-Length", size) self.end_headers() self.wfile.write(''.join(random.choice(string.printable) for _ in range(size))) def test(HandlerClass = TrafficHTTPRequestHandler, ServerClass = ThreadingSimpleServer, protocol="HTTP/1.1"): '''starts server with default parameters''' import sys if sys.argv[1:]: port = int(sys.argv[1]) else: port = 8000 server_address = ('', port) HandlerClass.protocol_version = protocol httpd = ServerClass(server_address, HandlerClass) try: while 1: sys.stdout.flush() httpd.handle_request() except KeyboardInterrupt: print "Finished" if __name__ == '__main__': test()
2 Antworten auf die Frage
Es stellt sich heraus, dass @ Porcupine911 auf eine Lösung verweist. Es wird fälschlicherweise auf der Serverseite gemeldet (aber nur für einen Remote-Firefox, seltsam). Die Lösung bestand darin, das Live HTTP Headers-Addon zu verwenden, das zeigte, dass Firefox eine HTTP / 1.1-Anforderung sendet
GET /?size=100 HTTP/1.1
auf die der Server mit HTTP / 1.1 antwortet,
HTTP/1.1 200 OK
Ich meldet es einfach als
"GET /?size=100 HTTP/1.0" 200 -
Der Fehler befand sich irgendwo im Netzwerk, da ein Firefox auf dem Server als HTTP / 1.1 gemeldet wurde. Dies war auch die Ursache in @ Porcupine911s Link zu Mozillazine.org, wo
Die Mozilla-Debug-Protokolle zeigen an, dass der Browser HTTP / 1.1 anfordert, aber irgendwo zwischen mir und dem Server wird der Server heruntergestuft.
Akzeptieren Sie @ Porcupine911, als er den Weg zu einer Lösung zeigte.
Verwandte Probleme
-
3
Installieren Sie Silverlight für Mozilla Firefox ohne Administratorrechte
-
8
Firefox PDF-Plugin zum Anzeigen von PDF-Dateien im Browser unter Windows
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
6
Warum sieht Firefox unter Linux anders aus als Windows / Mac?
-
13
Wie bekomme ich eine neue Browsersitzung, wenn Sie in Firefox / Chrome eine neue Registerkarte oder...
-
2
Firefox zum Drucken von PDF-Schriftarten
-
4
Firefox 3.5 startet das Problem langsam
-
4
Warum gibt es keinen 64-Bit-Linux-Firefox-Build?
-
3
Wie kann ich Firefox den Zugriff auf das Intranet mitteilen?
-
1
Wie erstelle ich ein benutzerdefiniertes Firefox-Build, das Anpassungen enthält?