s s
.uef^" :8 :8 ..
:d88E .88 .88 @L
`888E :888ooo :888ooo 9888i .dL
888E .z8k -*8888888 -*8888888 `Y888k:*888.
888E~?888L 8888 8888 888E 888I
888E 888E 8888 8888 888E 888I
888E 888E 8888 8888 888E 888I
888E 888E .8888Lu= .8888Lu= 888E 888I
888E 888E ^%888* ^%888* x888N><888'
m888N= 888> 'Y" 'Y" "88" 888
`Y" 888 __ .__ 88F
J88" _/ |_| |__ ____ 98"
@% __ | _/ __ ./"
:" | | | Y ___/ ~`
|__| |___| /___ >
__________/_____/____________________
/ | __ ___/__ ___/______
/ ~ | | | | | ___/
Y /| | | | | |
___|_ / |____| |____| |____|
______/___________________.___.
__ ___/__ ___/__ | |
| | | | / | |
| | | | ____ |
|____| |____| / ______|
/
HTTY ist eine Konsolenanwendung für die Interaktion mit Webservern. Es ist eine unterhaltsame Möglichkeit, Web -APIs zu erkunden und die Vor- und Nachteile von HTTP zu lernen.
Sehen Sie, was in letzter Zeit geändert wird, indem Sie die Projekthistorie lesen.
Es könnte nicht viel einfacher sein.
$ gem install htty
Sie brauchen Ruby und Rubygemems. Es ist bekannt, dass es unter OS X gegen Ruby v1.8.7, v1.9.2, v1.9.3, v2.0, v2.1 und v2.2 gut funktioniert.
Die Dinge, die Sie mit Htty machen können, sind:
Hier sind einige kommentierte Transkripte für die HTTY -Sitzung, um Ihnen den Einstieg zu erhalten (die hier gezeigten Terminal -Screenshots sind ebenfalls in Textform erhältlich).
Dieses einfache Beispiel zeigt, wie Sie einen schreibgeschützten Webdienst mit HTTY untersuchen.
Sie können Htty auf eine vollständige oder teilweise Web -URL richten. Wenn Sie keine URL liefern, wird http://0.0.0.0/ (Port 80) verwendet. Sie können das Protokollschema, das UserInfo, den Host, den Port, die Pfad, die Abfrage -Zeichenfolge und das Fragment nach Belieben variieren.
Die HTTY -Shell -Eingabeaufforderung zeigt die Adresse der aktuellen Anfrage an.
Der get -Befehl ist eine von sieben unterstützten HTTP -Anforderungsmethoden. Eine kurze Zusammenfassung der Antwort wird angezeigt, wenn Sie eine Anfrage ausstellen.
Sie können die Weiterleitungen mit dem follow folgen. Es wird keine Anfrage gestellt, bis Sie einen Anforderungsbefehl wie get oder post eingeben.
Sie können Segmente der Adresse nach Belieben optimieren. Hier navigieren wir die Pfadhierarchie der Website, die Sie mit relativen und absoluten Pfadspecs machen können.
Hier fügen wir Abfragestringparameter hinzu. Beachten Sie, dass Zeichen, die eine URL-Codierung erfordern, automatisch URL-codiert sind (es sei denn, sie sind Teil eines URL-kodierten Ausdrucks).
Die Befehle headers-response und body-response zeigen die Details einer Antwort.
In der Antwort des Webdienstes gab es einige Cross (eine horizontale Linie, eine Passage Referenz, Verse -Nummern, ein Urheberrechtsstempel und Zeilenpausen). Wir beseitigen es, indem wir API -Optionen verwenden, die vom Webdienst bereitgestellt werden, mit dem wir sprechen.
Wir machen ein Julia Child-Manöver und verwenden den address , um die gesamte URL zu ändern, anstatt einzelne Parameter für Abfragen zu addieren.
Beenden Sie Ihre Sitzung jederzeit, indem Sie quit oder auf Strg-D klicken.
Das nächste Beispiel zeigt HTTYs HTTP Secure Support- und Cookies -Funktionen sowie die Überprüfung und Überprüfung früherer Anfragen.
Das HTTPS: // -Schema und Port 443 implizieren einander, genau wie das Http: // -Schema und Port 80 einander implizieren. Wenn Sie das Schema oder den Port weglassen, wird der entsprechende Wert standardmäßig standardmäßig.
Beachten Sie, dass in der Antwortzusammenfassung ein kühner Sternchen (wie ein Cookie aussieht), wenn Cookies in einer Antwort angeboten werden. Das gleiche Cookie-Symbol wird neben dem Set-Cookie -Header angezeigt, wenn Sie die Antwortheader anzeigen.
Der Befehl cookies-use kopiert Cookies aus der Antwort in die nächste Anfrage. Das Cookie -Symbol wird neben dem Cookie -Header angezeigt, wenn Sie Anforderungsheader anzeigen.
Eine abgekürzte Geschichte ist über den history Command verfügbar. Informationen zu Anfragen im Verlauf umfassen Anforderungsmethoden, URL, Anzahl der Header (und ein Cookie -Symbol, wenn Cookies gesendet wurden) und die Größe des Körpers. Informationen zu Antworten in der Geschichte umfassen den Antwortcode, die Anzahl der Header (und ein Cookie -Symbol, falls Cookies empfangen wurden) und die Größe des Körpers.
Beachten Sie, dass der Verlauf nur eine nummerierte HTTP -Anforderung und Antwortpaare enthält, nicht einen Aufzeichnung aller von Ihnen eingegebenen Befehle.
Der Befehl reuse enthält eine Kopie der Header und des Körpers einer früheren Anfrage, auf der Sie aufbauen können.
Jetzt werden wir uns mit HTTYs HTTP -Basis -Authentifizierungsunterstützung befassen und lernen, wie Sie nicht überkürzte Transkripte von HTTY -Sitzungen anzeigen.
Angenommen, wir haben die folgende Sinatra -Anwendung, die auf Sinatras Standardport 4567 zuhört.
require 'sinatra'
get '/all-good' do
[ 200 , [ [ 'Set-Cookie' , 'foo=bar; baz' ] ] , 'Hello World!' ]
end
put '/huh' do
[ 404 , 'What?' ]
end
delete '/hurl' do
[ 500 , 'Barf!' ]
end
post '/submit-novel' do
redirect '/all-good'
endDiese Bewerbung erwartet, dass Anfragen und postiert werden und auf verschiedene erfundene Weise reagiert.
Wenn Sie den userInfo -Teil der Adresse oder die gesamte Adresse ändern, wird der entsprechende HTTP -Basis -Authentifizierungs -Header für Sie automatisch erstellt. Beachten Sie, dass Zeichen, die eine URL-Codierung erfordern, automatisch URL-codiert sind (es sei denn, sie sind Teil eines URL-kodierten Ausdrucks).
Wenn UserInfo in einer Anfrage geliefert wird, wird neben dem resultierenden Autorisierungsheader ein mutiges Quercantile -Symbol ( @ ) angezeigt, wenn Sie Anforderungsheader anzeigen (siehe unten).
Geben Sie body-set ein, um Körperdaten einzugeben und sie zu beenden, indem Sie zwei aufeinanderfolgende leere Linien eingeben oder auf Strg-D klicken. Die Leiche wird nur nach Post und Anfragen gesendet. Der entsprechende Header für die inhaltliche Länge wird für Sie automatisch erstellt (siehe unten).
Verschiedene Antwortcodes werden mit Farben gerendert, die auf ihre Bedeutung hinweisen:
Wie bei der zuvor gezeigten abgekürzten Geschichte zeigt der ausführliche Verlauf eine nummerierte Liste von Anfragen und die von ihnen ausgelösten Antworten. Alle Informationen, die zwischen Client und Server ausgetauscht werden, werden angezeigt.
Sie können lernen, wie Sie HTTY -Befehle aus HTTY verwenden.
Der Befehl help nimmt ein optionales Argument des abgekürzten oder vollständigen Namens eines Befehls an.
Melden Sie Defekte und Feature -Anfragen zu Github -Problemen.
Ihre Patches sind willkommen und Sie erhalten hier zuzuweisen für gute Sachen. Geben Sie das offizielle HTTY -Repository aus und senden Sie eine Pull -Anfrage.
Nach dem Klonen des Repositorys, bin/setup um Abhängigkeiten zu installieren. Dann rake , um die Tests durchzuführen. Sie können auch bin/console eine interaktive Eingabeaufforderung erhalten, mit der Sie experimentieren können.
Um dieses Juwel auf Ihrem lokalen Computer zu installieren, bundle exec rake install . Um eine neue Version zu veröffentlichen, aktualisieren Sie die Versionsnummer in lib/htty/Version.rb und bundle exec rake release , die ein Git -Tag für die Version erstellt, Git Commits und Tags drückt und die .gem -Datei auf rubygemems.org überschreitet.
Bleiben Sie mit dem HTTY -Projekt in Kontakt, indem Sie @get_htty auf Twitter folgen.
Sie können auch Hilfe im #Htty -Kanal auf Freenode erhalten.
Der Autor Nils Jonsson schuldet dem HTTP-Console- Projekt eine Verschuldung der Inspiration.
Vielen Dank an Mitwirkende (in alphabetischer Reihenfolge):
Unter der MIT -Lizenz veröffentlicht.