HTTP - Parameter
In diesem Kapitel werden einige der wichtigen HTTP-Protokollparameter und ihre Syntax aufgelistet, wie sie in der Kommunikation verwendet werden. Beispiel: Format für Datum, Format der URL usw. Dies hilft Ihnen beim Erstellen Ihrer Anforderungs- und Antwortnachrichten beim Schreiben von HTTP-Client- oder -Serverprogrammen. Sie werden die vollständige Verwendung dieser Parameter in den folgenden Kapiteln sehen, während Sie die Nachrichtenstruktur für HTTP-Anforderungen und -Antworten lernen.
HTTP-Version
HTTP verwendet a <major>.<minor>Nummerierungsschema zur Angabe von Versionen des Protokolls. Die Version einer HTTP-Nachricht wird in der ersten Zeile durch ein Feld für die HTTP-Version angezeigt. Hier ist die allgemeine Syntax zur Angabe der HTTP-Versionsnummer:
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
Beispiel
HTTP/1.0
or
HTTP/1.1
Einheitliche Ressourcenkennungen
Uniform Resource Identifiers (URI) sind einfach formatierte Zeichenfolgen, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird und die Namen, Speicherorte usw. enthalten, um eine Ressource zu identifizieren, z. B. eine Website, einen Webdienst usw. Eine allgemeine Syntax der für HTTP verwendeten URI lautet wie folgt:
URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
Hier, wenn die port Ist leer oder nicht angegeben, wird Port 80 für HTTP und leer angenommen abs_path ist gleichbedeutend mit einem abs_pathvon "/". Die anderen Zeichen als die in derreserved und unsafe Sätze entsprechen ihrer ""% "HEX HEX" -Codierung.
Beispiel
Die folgenden drei URIs sind äquivalent:
http://abc.com:80/~smith/home.html
http://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html
Datums- / Zeitformate
Alle HTTP-Datums- / Zeitstempel MÜSSEN ausnahmslos in Greenwich Mean Time (GMT) dargestellt werden. HTTP-Anwendungen dürfen eine der folgenden drei Darstellungen von Datums- / Zeitstempeln verwenden:
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
Zeichensätze
Wir verwenden Zeichensätze, um die vom Client bevorzugten Zeichensätze anzugeben. Mehrere Zeichensätze können durch Kommas getrennt aufgelistet werden. Wenn kein Wert angegeben wird, ist der Standardwert US-ASCII.
Beispiel
Es folgen die gültigen Zeichensätze:
US-ASCII
or
ISO-8859-1
or
ISO-8859-7
Inhaltscodierungen
Ein Inhaltscodierungswert gibt an, dass ein Codierungsalgorithmus verwendet wurde, um den Inhalt zu codieren, bevor er über das Netzwerk übertragen wird. Die Inhaltscodierung wird hauptsächlich verwendet, um zu ermöglichen, dass ein Dokument komprimiert oder auf andere Weise sinnvoll transformiert wird, ohne die Identität zu verlieren.
Bei allen inhaltscodierenden Werten wird die Groß- und Kleinschreibung nicht berücksichtigt. HTTP / 1.1 verwendet Inhaltscodierungswerte in den Headerfeldern Accept-Encoding und Content-Encoding, die in den folgenden Kapiteln angezeigt werden.
Beispiel
Im Folgenden sind die gültigen Codierungsschemata aufgeführt:
Accept-encoding: gzip
or
Accept-encoding: compress
or
Accept-encoding: deflate
Medientypen
HTTP verwendet Internetmedientypen in der Content-Type und AcceptHeader-Felder, um eine offene und erweiterbare Datentypisierung und Typaushandlung zu ermöglichen. Alle Medientypwerte werden bei der Internet Assigned Number Authority (IANA) registriert. Die allgemeine Syntax zur Angabe des Medientyps lautet wie folgt:
media-type = type "/" subtype *( ";" parameter )
Bei den Attributnamen für Typ, Subtyp und Parameter wird die Groß- und Kleinschreibung nicht berücksichtigt.
Beispiel
Accept: image/gif
Sprach-Tags
HTTP verwendet Sprach-Tags innerhalb der Accept-Language und Content-LanguageFelder. Ein Sprach-Tag besteht aus einem oder mehreren Teilen: einem primären Sprach-Tag und einer möglicherweise leeren Reihe von Untertags:
language-tag = primary-tag *( "-" subtag )
Leerzeichen innerhalb des Tags sind nicht zulässig, und bei allen Tags wird die Groß- und Kleinschreibung nicht berücksichtigt.
Beispiel
Beispiel-Tags sind:
en, en-US, en-cockney, i-cherokee, x-pig-latin
Dabei ist jedes aus zwei Buchstaben bestehende Primär-Tag eine Abkürzung für die ISO-639-Sprache und jedes aus zwei Buchstaben bestehende anfängliche Sub-Tag ein ISO-3166-Ländercode.