HTML
, CSS
& JavaScriptfls
HTTP
, HTML
, Webserver, Browser, …)XMLHttpRequest
für AJAX
PHP
, Perl
, Java
, …AJAX
HTML
, CSS
& TemplatingHTTP
: Hypertext Transfer ProtocolHTML
: Hypertext Markup LanguageCSS
: Cascading StylesheetsJavaScript
HTML
-SeitenHTTP
-Server von Hand schreibenWWW
-adressiert werden, das Domain-Name-System (DNS
) ging 1983 in Betriebvhost
)HTML
-Darstellung von Hand versuchenURI
ist der Oberbegriff für URN
und URL
URN
identifizieren Ressourcen eindeutig, geben aber keinen Ort an (z.B. ISBN Nummern)URL
s können auf identische Ressourcen verweisen, geben den Speicherort anSchema
definiert Format des ProtokollsHTTP
und HTTPS
Benutzer
& Kennwort
zur AuthentifizierungHTTP Basic Auth
als Teil der URL kodiert werdenHost
, wahlweise als Name oder IP-AdressePort
zur numerische Differenzierung unterschiedlicher Angebote80
& 443
zur HTTP-Kommunikation verwendet werdenPfad
um die Resource eindeutig zu identifizierenQuery
zum Übertragen von AufrufparameternFragment
zur Navigation zu bestimmten Inhalten einer SeiteURL
s können im Kontext einer Elter-URL
interpretiert werdenURL
ist typischerweise die Adresszeile des Browsers/
so bezieht er sich auf die Wurzel der Pfadhierarchie..
in einer Pfadangabe wird eine Ebene nach “oben” navigiert//
Absolute Elter-URL: "http://example-blog.test/all/"
"#footer" => "http://example-blog.test/all/#footer"
"?start_at=4" => "http://example-blog.test/all/?start_at=4"
"impressum" => "http://example-blog.test/all/impressum"
"../impressum" => "http://example-blog.test/impressum"
"/impressum" => "http://example-blog.test/impressum"
"../?fast_mode=1" => "http://example-blog.test/?fast_mode=1"
"//fh-wedel.de" => "http://fh-wedel.de"
!
*
'
(
)
;
:
@
&
=
+
$
,
/
?
#
[
]
A
- Z
, a
- z
und *
-
_
.
~
%20
entspricht einem Leerzeichen, %21
entspricht !
, …http://fh-wedel.de/~eh/?query=Alter, wie besteht man Analysis?
wird zu http://fh-wedel.de/~eh/?query=Alter%2C%20wie%20besteht%20man%20Analysis%3F
HTTP
-ProtokollTCP
-Klartextprotokoll mit Kopf- und NutzdatenTCP
-Binärprotokoll mit Kopf- und NutzdatenCRUD
-ZyklusCREATE
wird die Resource angelegtREAD
)UPDATE
)DELETE
)HTTP
-VerbenGET
dient zum Abruf von Daten, Veränderungen sind nicht vorgesehenHEAD
weist den Server an, die Abfrage wie bei GET
auszuführen, allerdings nur mit den Kopfdaten zu antwortenPOST
sendet eine theoretisch beliebig große Datenmenge an den Server um sie dort verarbeiten zu lassenPUT
dient zum Erstellen einer neuen Resource auf dem ServerPATCH
dient zum Verändern einer bestehenden Resource auf dem ServerDELETE
löscht eine Resource vom ServerCRUD
-ZyklusCREATE
entspricht PUT
oder POST
READ
entspricht GET
UPDATE
entspricht PATCH
oder PUT
DELETE
entspricht DELETE
HTTP
-Endpunkt oder einer Funktion entsprechen!UPDATE
-Operationen sind häufig abhängig von BenutzerrechtenHTTP
-Statuscodes1xx
- Informationen2xx
- Erfolg200 - OK
Anfrage wurde erfolgreich verarbeitet, das Ergebnis wird übertragen3xx
- Umleitung300 - Multiple Choices
Der Anfragesteller muss die korrekte Resource auswählen301 - Moved Permanently
Die neue Adresse steht im Location
-Feld4xx
- Clientfehler400 - Bad Request
Allgemein ungültige Anfrage401 - Unauthorized
Authentifizierung erforderlich, das Feld WWW-Authenticate
enthält weitere Informationen403 - Forbidden
Berechtigung nicht ausreichend404 - Not Found
405 - Method Not Allowed
Falsches HTTP
-Verb5xx
- Serverfehler500 - Internal Server Error
Unbekannter Fehler an unbekannter Stelle503 - Service Unavailable
Temporäre ÜberlastungHTTP
-Anfragetelnet $host $port
GET
und nennt zusätzlich explizit HostHTTP
-Antwort, es ist alles OKContent-Type
beschreibt anhand von MIME-Typen wie die Antwort zu interpretieren istContent-Length
enthält die Länge der Antwort in byte
GET /tribute/ HTTP/1.1
Host: mri.fh-wedel.de
HTTP/1.1 200 OK
Server: nginx/1.10.3
Date: Sun, 09 Apr 2017 11:55:48 GMT
Content-Type: text/html
Content-Length: 792
Last-Modified: Sat, 08 Apr 2017 15:03:40 GMT
Connection: keep-alive
ETag: "58e8fbcc-318"
Accept-Ranges: bytes
<!DOCTYPE html>
<!-- -->
URL
-Struktur einer Homepagemeine-seite.test
mit drei Bereichenindex
)artikel
meine-seite.test/artikel
meine-seite.test/artikel/1
meine-seite.test/artikel/superpapagei
meine-seite.test/artikel/1/superpapagei
meine-seite.test/artikel/2/der-phantomsee
meine-seite.test/artikel/3/superpapagei
?meine-seite.test/artikel/2016/6/24/superpapagei
URL
s verwendeten Namen machen kanonische Schreibweise nötig&
, /
, ?
Déjà-vu: Die Katze war doch eben schon da?
-> deja-vu-die-katze-war-doch-eben-schon-da
Löschen von Dateien unter C:/Windows
-> loschen-von-Dateien-unter-c-windows
/bilder/:bild
/galerie/2016-comicmesse/:bild
bilder.meine-seite.test/:bild
URL
s sind für den Benutzer in der Regel unsichtbarGET
möglichGET /tagebuch
GET /suche?nach=<text>
URL
-Parameter nach
wird genutzt um das Suchwort entgegenzunehmen.POST /artikel/:id