HTTP-request-minimale Größe in bytes
Was ist die minimale Größe in Byte einer HTTP-Anfrage? Ich meine die Größe von den Pflichtangaben, die eine HTTP-Anfrage aussieht, wie der header der zugehörigen Felder und wenn man bedenkt, dass der body der Anfrage leer ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den kürzest möglichen HTTP-request ist ein einfacher
GET
Methode, durch die direkte Verbindung zu einem bestimmten server. Die kürzeste Anfrage:die insgesamt 16 bytes, darunter die CR/LF-pair-Mädchen am Ende der Zeile.
Für HTTP 1.x (1.0 und 1.1), das Vorhandensein von Kopf-zu erwarten ist, so zu zeigen das Ende des Header benötigen Sie eine leere Zeile. Der kürzeste Anforderung ist dann:
die insgesamt 18 bytes.
(Hinzugefügt, nachdem Kommentare von Doug; vielen Dank:) Für HTTP 1.1 Host: - header ist erforderlich. Siehe @DougRichardson Antwort für die kürzeste mögliche HTTP 1.1 request.
HTTP/0.9
und die zweite speziellHTTP/1.0
. Und danke für die Korrektur über die parameter, ich werde es korrigieren.26 bytes
für den außergewöhnlichen Fall eines 1-byte-Ressource und 1 byte hostname.
Müssen Sie eine erste request-line und, wenn Sie mit HTTP 1.1, einen Host-header. Jeder Zeilenumbruch wird als zwei bytes (CRLF). Zwei Teile von diesem minimal-GET-Anforderung variable: dem Ressourcen-Pfad und hostname.
Mindestens initial request line ist
GET /HTTP/1.1
16 bytes (darunter die beiden unsichtbaren CRLF bytes, die Sie nicht sehen).Mindestens Gastgeber Linie ist
Host:x
, das heißt, ein byte-Hostnamen, die Ergebnisse in 8 Byte (zwei Byte CRLF).Bedeuten das Ende von überschriften, müssen Sie eine weitere CRLF, so dass die anderen 2 bytes.
16+8+2=26 bytes
für einen minimalen HTTP-Anforderung Größe.Natürlich, diese erhöht sich, wenn Sie eine längere hostname oder mehr Pfad zu der Ressource. Nehmen diejenigen berücksichtigt, die mindestens HTTP-Anforderung Größe:
24 + length(resource_path) + length(host)
Hier ist ein reales Beispiel mit netcat von bash (Hinweis: der Ressourcen-Pfad und hostname sind beide mehr als das minimum):