2016-05-07 11 views
1

Wie kann ich verschiedene HTTP-Anfrage senden Methoden über meinen Browser? Ich benutze Chrom, aber jedes andere würde tun.senden Sie Anfragen mit verschiedenen HTTP-Methoden

Zum Beispiel möchte ich TRACE oder OPTIONS Methoden für Bildungszwecke ausprobieren. Irgendeine Idee, wie ich das machen kann?

Beispiel:

Anforderungsnachricht:

OPTIONS * HTTP/1.1 
Host: www.joes-hardware.com 
Accept: * 

Antwortnachricht:

HTTP/1.1 200 OK 
Allow: GET, POST, PUT, OPTIONS 
Context-length: 0 
+0

Gibt es einen bestimmten Grund, warum Sie das über Ihren Browser tun möchten? – DaSourcerer

+0

Es gibt keinen genauen Browserbedarf. Ich habe nur Browser diese Option aktiviert. Jedes andere Werkzeug würde tun. – brumbrum

Antwort

1

sich alle Anfragen mit Verben nicht erteilen Browsern (sprich: Methoden) als GET, POST, und HEAD. Durch die Befugnisse von können sie jedoch gemacht werden, eine Fülle anderer Methoden durch das XmlHttpRequest Objekt zu verwenden.

Wenn Methode ist ein Groß- und Kleinschreibung für CONNECT, TRACE oder TRACK, wirft eine „SecurityError“ Ausnahme und diese Schritte beenden: Sie werden jedoch out of luck mit dem TRACE Verb.

Wenn Sie nicht an einen Browser gebunden werden möchten oder müssen, gibt es einige Optionen. Für den Anfang, Perls libwww Bibliothek kommt mit den GET, HEAD und POST Kommandozeilen-Dienstprogramme, die recht ordentlich zu bedienen sind.

Eine vollständigere Lösung ist cURL, die eine ziemlich vollständige Lösung für eine Vielzahl von Protokollen ist. Ihr ursprünglicher Zweck bestand darin, eine Datei einfach von einer URL abzufangen (c atch URL = cURL), was nicht notwendigerweise von einem HTTP-Server bedeutet. Mit einer wohlgeformten URL kann cURL einen Anhang von einer E-Mail auf einem IMAP-Server herunterladen. Sie werden am meisten an der -X Option von cURL's Kommandozeilenschnittstelle interessiert sein, die es erlaubt, beliebige Verben für eine HTTP Anfrage anzugeben. Aber so mächtig es auch sein mag, es wird wahrscheinlich no way geben, um diese Anfrage mit OPTIONS * HTTP/1.1 zu stellen.

Als letzte Anstrengung, kann ich von ganzem Herzen netcat empfehlen, die Piped-Eingang akzeptiert und vollständig in der Lage ist, die Verschlüsselung zu handhaben (was viel komfortabler ist als openssls s_client). Vielleicht wissen Sie bereits, dass Sie HTTP-Anfragen über Telnet emulieren können (wenn Sie schnell genug tippen). Aber ich glaube, Sie netcat mit etwas heredoc Weg finden werden bequemer:

$ nc -v localhost 80 <<EOD 
GET/HTTP/1.1 
Host: localhost 
Connection: close 

EOD 

netcat keine HTTP spricht selbst, so sind Sie allein verantwortlich für die syntaktische Korrektheit Ihrer Anfragen. Auf der anderen Seite erlaubt dies Ihnen die totale Freiheit zu experimentieren.