Nein, das wird nicht durch einen Header verschickt. Verabschiede dich in diesem Fall von dem Begriff LINK, es handelt sich um einen URI (Unified Resource Identifier).
Wenn du Parameter an den sog. Query-String anhängst (also Daten via GET überträgst: ?token=asdfghjhkj) sind sie Daten im Header. Wenn du sie in eine POST-Request einbettest, sind das Teile des HTTP-Body. Beim Übertragen via POST sind die Payload-Daten im URI nicht enthalten, also für den Benutzer, der den Client verwendet zunächst "unsichtbar". Auch ein Proxy wird mit den Daten nichts anstellen (im Falle von Übertragung via HTTPs wird er das nicht mal können).
Header sind nur Daten wie URL, akzeptiertes Encoding, Sprache, Antwort-Body-Größe etc. Hier mal eine Beispiel-Kommunikation:
Client (bspw. Browser) sendet eine Anfrage an die Seite
http://www.test.de:
Code:
GET / HTTP/1.1
Host: www.test.de
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Server (auf
www.test.de) sendet daraufhin diese Antwort:
Code:
HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Location: https://www.test.de/
Server: Microsoft-IIS/8.5
Strict-Transport-Security: max-age=31536000;
Date: Fri, 28 Aug 2015 08:09:30 GMT
Content-Length: 143
Alles was bis hier hin zu lesen ist, sind nur Header. Diese sind im HTTP-Protokoll spezifiziert. Eigene Header sind zwar möglich, aber ich rate davon ab, da ein Proxy oder Server selbst die Custom-Header filtern könnte, und das auch nicht wirklich der Bereich ist, Nutzdaten zu übertragen.
So und jetzt POST, wieder erstmal Client (Anfrage):
Code:
POST /kontakt/ HTTP/1.1
Host: www.test.de
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: https://www.test.de/kontakt/
Cookie: sid=ejf3d42xrq2os0gfa5tb5bo4; wt3_eid=%3B368664393966025%7C2144074937300292260%232144074965300152638; wt3_sid=%3B368664393966025
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 168
module=ContactForm&thema=&text=schnick+schnack&email=&anrede=&vorname=&name=&abonr=&strasse=&plz=&ort=&telefon=&extendedform=Kontaktanfrage&extendedformbutton0=+Senden+
Und die Antwort des Servers:
Code:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/8.5
Strict-Transport-Security: max-age=31536000;
Date: Fri, 28 Aug 2015 08:14:27 GMT
Content-Length: 11886
Wie man sehen kann, sind in der Anfrage vom Client die Payload-Daten unterhalb des Headers "Content-Length" im Klartext zu sehen, dies aber nur, weil ich die Daten vom Browser mit schneiden lasse. Aber es verdeutlicht, dass es nur weil es mit POST übertragen wird, nicht frei von Manipulation ist.