Het HTTP (RFC 1945, 2616 en 7540) is het protocol voor de communicatie tussen een een webbrowser of een app en een webserver. De webserver kan zich overal op het WWW bevinden, eventueel in het lokale LAN (een Intranet) of zelfs op de eigen computer (zoals een handleiding). Bij gebruik van webpagina's op de eigen computer is, bij pure HTML, overigens geen webserver nodig en ook geen HTTP!
In HTTP is vastgelegd welke requests een browser aan een server kan stellen en welke responses een webserver daarop kan teruggeven. Elke vraag bevat een URL die naar een webcomponent, een statisch object zoals een webpagina of plaatje verwijst.
Een HTTP-request bestaat uit de requestsoort, de URL, de headervelden en eventueel een inhoud.
HTTP-requestmethoden: GET, HEAD, POST...
HTTP-headervelden: Content-Length, Location, Server...
Een HTTP-response bestaat uit een resultaatcode, headervelden en een body. De resultaatcode bestaat uit minimaal drie cijfers. Het eerste cijfer is het belangrijkste:
1xx: een informele boodschap
2xx: succes boodschap
3xx: redirect
4xx: fout van browser
5xx: fout van server
6xx: proxifout
Een variant van het HTTP is HTTPS, hierbij wordt tussen het HTTP en TCP een extra beveiligingslaag TLS ingevoegd (aan beide zijden). Hiermee wordt het onderweg illegaal onderscheppen van berichten voorkomen. Ter beveiliging weigeren browsers soms een gewone HTTP-requests te zenden zonder uitdrukkelijke toestemming van de gebruiker.