HTTP Response

Die Scriptsprache PHP fĂĽr die Gestaltung von dynamischen Websites.

HTTP Response

Beitragvon max_payne » Mo 15 Mai, 2006 20:52

Hallo
Ich wĂĽrde gerne wissen, wie ich von einem beliebigen Server die Content-Length der ĂĽbertragenen Daten erzwingen kann.

Also dass er mir fix im Response liefert:
...
Content-Length: ###
...

Danke!
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25

Beitragvon mo » Mo 15 Mai, 2006 21:50

wenn du selber das dazugehörige php-file schreibst, geht das per:
header("Content-Length: ".filesize($filename));
und darunter halt dann z.b. echo file_get_contents($filename);

andernfalls kannst dus iirc nicht erzwingen.
LINEA7/XPIRIO ADSL 2048/512 FLAT
mo
Board-Mitglied
Board-Mitglied
 
Beiträge: 185
Registriert: Do 06 Jan, 2005 16:45

Beitragvon max_payne » Di 16 Mai, 2006 06:02

andernfalls kannst dus iirc nicht erzwingen.

schlecht.
es geht nämlich um ein webbrowser
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25

Beitragvon superracer » Di 16 Mai, 2006 06:56

wie soll das gehen dann? der browser "liefert" keine response headers, das macht der server. wie willst da also was erzwingen?
superracer
Board-User Level 3
Board-User Level 3
 
Beiträge: 1073
Registriert: So 04 Jul, 2004 11:18

Beitragvon max_payne » Di 16 Mai, 2006 16:11

indem ich irgend was bestimmtes in den request reinschreib
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25

Beitragvon superracer » Di 16 Mai, 2006 17:47

achso, du willst wissen, was fĂĽr einen request du absetzen muĂźt (mit welchen headern), damit du nur einen bestimmten teil des contents zurĂĽck bekommst? geht's dir darum?

in dem fall muĂźt du einen "Range:" header verwenden, zb "Range: bytes=100-199" liefert dir nur die entsprechenden 100 bytes zurĂĽck. der response-code ist dann ein "268 partial content", allerdings natĂĽrlich nur, wenn der web-server den "range" header unterstĂĽtzt und vom requesteten dokument auch nur ein teil gelieferten werden kann (meist nur bei statischen content; falls nicht, kriegst du ein normales 200 ok).

hth
superracer
Board-User Level 3
Board-User Level 3
 
Beiträge: 1073
Registriert: So 04 Jul, 2004 11:18

Beitragvon max_payne » Di 16 Mai, 2006 18:16

ne ich will eigentlich nur gscheit von keep-alive-connections auslesen können.
mit nem normalen socket_read geht das nämlich nicht, weil er dann hängen bleibt
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25

Beitragvon superracer » Di 16 Mai, 2006 18:28

achso! ja sag das gleich!

naja das geht nicht. entweder der server liefert ein content-length feld + connection: keep-alive, oder er tut es nicht. wenn keine content-length angegeben ist, kann die connection auch nicht im keep-alive modus sein, außer es werden andere mechanismen verwendet, zb chunked transfer-coding (wird bei php-replies gern verwendet; das muß vom client aber in den request headern als unterstützt advertiset werden). aber die kombination keep-alive + überhaupt keine längen-angabe gibt es nicht. (wenn der server die länge nicht im vornhinein kennt, kann er sie auch nicht in den headern mitschicken, daher fahren solche transfers immer mit connection: close.)
superracer
Board-User Level 3
Board-User Level 3
 
Beiträge: 1073
Registriert: So 04 Jul, 2004 11:18

Beitragvon max_payne » Di 16 Mai, 2006 19:10

also dh. wenn jetzt ein chunked transfer-encoding kommt, wie muss ich dann darauf reagieren?
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25

Beitragvon superracer » Di 16 Mai, 2006 19:25

superracer
Board-User Level 3
Board-User Level 3
 
Beiträge: 1073
Registriert: So 04 Jul, 2004 11:18


ZurĂĽck zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste