Hex-Wert zwischen Response-Header und Quellcode

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Zynn
User
Beiträge: 3
Registriert: Freitag 27. November 2015, 17:34

Hallo euch allen...
Also mein Problem liegt nicht wirklich in dem Programm, sondern in dem was dabei rauskommt.^^
Dazu mal folgende Erklärung: ich hab mir hier mal schnell ein kleines (Quick and Dirty) Snippet zurechtgecoded, mit dem ich mir den Inhalt einer Internetseite downloade.

Code: Alles auswählen

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("www.python-kurs.eu", 80))

s.send("GET /index.php HTTP/1.1\n".encode())
s.send("Host: www.python-kurs.eu\n".encode())
s.send("User-Agent: MyAgent\n".encode())
s.send("Accept: */*\n".encode())
s.send("Connection: close\n\n".encode())

result = bytearray()

while True:
	data = s.recv(1024)
	
	if not data:
		break
		
	result += data
	
print(result.decode('cp1252'))
Das Funktioniert auch alles einwandfrei, die gedownloadeten Daten sehen dann folgendermaßen aus:

Code: Alles auswählen

HTTP/1.1 200 OK
Date: Fri, 27 Nov 2015 16:56:38 GMT
Server: Apache/2.2.3
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

258f
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
.
.
.
So weit so gut...
Ich habe am Anfang den Response-Header und dadrunter den Quellcode aber was hat es mit dieser Hexadezimal-Zahl (258f) zwischen den beiden auf sich? Das ist mir schon bei vielen (aber nicht bei allen) Internetseiten aufgefallen. Kann mir evtl. jemand erklären was dieser Wert zu bedeuten hat?
Zuletzt geändert von Anonymous am Freitag 27. November 2015, 20:38, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Wirf einfach alles weg und nutze das Requests-Modul, um eine Webseite herunter zu laden.

Für Seiten hinter der angegebenen URL würde ich persönlich aber nicht so einen Aufwand betreiben; es gibt so viele gute Python Tutorials da draußen!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Zynn
User
Beiträge: 3
Registriert: Freitag 27. November 2015, 17:34

Erstmal danke für deine Antwort, allerdings würde ich trotzdem gern wissen, was das für ein Wert ist. Ich hab auch schon eine Weile gegoogelt und mich mit dem HTTP-Protokoll beschäftigt aber dieser Wert wurde nirgendwo erwähnt.
Zynn
User
Beiträge: 3
Registriert: Freitag 27. November 2015, 17:34

Super, hast mir sehr weiter geholfen. Dankeschön.
Antworten