Uije, eigentlich ist es relativ einfach, ist aber aufwendig. Ich gebe jetzt hier keinen Codeschnipsel, nur, worauf es ankommt.
Du baust eine Socket-Verbindung auf (über Port 80, ist klar). Sende eine HTML-Anfrage (ein GET-Request). Such dir am besten vom W3C-Konsortium (die haben HTML verbrochen) wie so ein Request aufgebaut ist. Es ist einfach nur ein mehrzeiliger Text, die erste Zeile enthält das HTML-Kommando, die restlichen Zeilen sind Parameter. Als Abschluss kommt eine Leerzeile. Das sieht z.Bsp. so aus (kein Anspruch auf Korrektheit):
GET
http://www.hurz.de HTTP/1.0
Connection: keep-alive
Parameter: Wert
Als Antwort bekommst du dann einen ebensolchen HTML-Klotz zurück, zuoberst eine Zeile mit dem Antwortcode (wichtig, für Fehler und anderes), eine Liste von Parametern, eine Leerzeile als Abschluss des HTML-"Headers". Je nach Ergebnis kommt dann im Anschluss die eigentliche HTML-Seite. Der Header könnte so aussehen:
HTTP 200 OK
content-length: 1234
Parameter: Wert
Wenn 200 kommt, heisst das, das der Request funktioniert hat. Dann müsste ein content-length-Parameter vorkommen, der dir die Länge der HTML-Seite im Anschluss an den Header mitteilt. Die Länge ist sehr wichtig, da die HTML-Seite normalerweise NICHT 0-terminiert ist und man dann eigentlich nicht weiss, wo die Seite zu Ende ist.
So sieht's aus im Simpelfall, also HTTP unverschlüsselt und kein Proxy. Mit Proxy ändert sich meistens nur der Request, und mit HTTPS ist die K***e richtig am Dampfen. Da muss dann erst ein Handshake mit dem Server gemacht werden, dabei wird die Verschlüsselung festgelegt. Ein Fehler und der Server stellt sich tot; sprich ignoriert die Verbindung.
Keuch. Herr Kachelator, bitte die nächste an mich weitergereichte Anfrage etwas einfacher, sowas in der Richtung "Wie addiere ich zwei Zahlen?".