php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.08.2007, 20:50  
Benutzer
 
Registriert seit: 22.02.2007
Beiträge: 51
Adminator
Adminator eine Nachricht über ICQ schicken
Standard readfile vs. header location

Hallo,

ich habe früher immer beim dynamischen einbinden von dateien die Funktion readfile verwendet. Bei meinem aktuellen Projekt bin ich jedoch um Traffic und Systemresourcen zu sparen auf:
header('Location: http://example.net/file');
ausgewichen.
Was haltet Ihr von der Verwendung von dynamischen Weiterleitungen mittels header 'HTTP/1.1 302 Found' / 'HTTP/1.1 307 Moved temporarily'?
Gibt es Gründe, diese Methode nicht zu verwenden oder sind bestimmte Dinge besonders zu beachten?
Welche Art der dynamischen Einbindung verwendet Ihr?
Adminator ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 31.08.2007, 01:10  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

include?

Wenn du per header weiter leitest, wieso verlinkst du die Seite nicht direkt?
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 31.08.2007, 17:08  
Benutzer
 
Registriert seit: 22.02.2007
Beiträge: 51
Adminator
Adminator eine Nachricht über ICQ schicken
Standard

es handelt sich ja nicht um HTML/PHP/Textdateien, sondern um Audio- und Videodateien. Da verursacht include nur eine Fehlermeldung, is ja auch für php nicht verständlich, so ne Audiodatei.
Beim Seitenaufruf wird eine DB abgefragt und dann "interaktiv" die Datei per Header-Weiterleitung abgerufen.
Dieser Vorgang sollte so ressourcen- und trafficschonend wie möglich sein.
Der Hauptgrund für die Verwendung von readfile, die Verschleierung der Url ist bei meinem Projekt nicht von Nöten.
Es werden sowohl Dateien von meinem Server, als auch von Partnerseiten aufgerufen.
Noch ne frage meinerseits, sollte ich das veraltete "302 Found" oder das neue (evtl. noch nicht von allen Browsern unterstützte) "307 Moved temporarily" verwenden?
Adminator ist offline  
Alt 01.09.2007, 18:23  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Warum denn moved temporarily, ich denke es handelt sich um Dateien, die du einfach nur zum Download anbieten möchtest?
Zergling-new ist offline  
Alt 01.09.2007, 21:04  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

der header "moved temporarily" mit einem verbunden "location" header ist dem browser wurscht, der geht sofort auf die genannte location weiter.
interessant ist das nur für sumas. die gehen nämlich, wegen des "moved temporarily" header, davon aus, das der aktuelle link veraltet ist und benutzen stattdessen den neuen. falls also jmd. von ner suma auf deine datei zugreift, wird er direkt auf den location header verwiesen, nicht auf dein db script.

so, aber nun zu deinem problem: readfile() wird über php ausgegeben, php öffnet also die datei, schaufelt sie in den ram und gibt sie aus.
während ein direkter zugriff nicht über php läuft (normalerweise) und deswegen resourcenschonender ist.
brian johnson ist offline  
Alt 02.09.2007, 14:10  
Benutzer
 
Registriert seit: 22.02.2007
Beiträge: 51
Adminator
Adminator eine Nachricht über ICQ schicken
Standard

@brain johnson: also ist dem browser der http code total egal? Für sumas ist das ganze sowiso gesperrt, zumindest für die, die sich an eine robot.txt halten.
zu readfile: genau so hab ich mir das auch gedacht, deshalb bin ich ja auch von readfile auf header location umgestiegen.

@Zergling: es hat schon einen bestimmten Grund, dass ich keinen link auf die Datei leg, sondern das per header location mache. Wenns fertig is kannst du es dir ja mal anschauen.
Adminator ist offline  
Alt 03.09.2007, 17:08  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Adminator
@brain johnson: also ist dem browser der http code total egal? Für sumas ist das ganze sowiso gesperrt, zumindest für die, die sich an eine robot.txt halten.
zu readfile: genau so hab ich mir das auch gedacht, deshalb bin ich ja auch von readfile auf header location umgestiegen.
ja dem browser ist es, wegen dem verbundenen LOCATION header, egal, denn er geht sofort zur LOCATION weiter.

das steht auch in der genauen definition von 301 Moved Permanently:

Zitat:
Die angeforderte Ressource steht ab sofort unter der im „Location“-Header-Feld angegebenen Adresse bereit. Die alte Adresse ist nicht länger gültig.
brian johnson ist offline  
Alt 03.09.2007, 17:33  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von brian johnson
der header "moved temporarily" mit einem verbunden "location" header ist dem browser wurscht, der geht sofort auf die genannte location weiter.
Was soll denn "wurscht" in diesem Zusammgenhang heißen? Und was soll heißen "der geht sofort auf die genannte Location weiter?

Zitat:
interessant ist das nur für sumas. die gehen nämlich, wegen des "moved temporarily" header, davon aus, das der aktuelle link veraltet ist und benutzen stattdessen den neuen. falls also jmd. von ner suma auf deine datei zugreift, wird er direkt auf den location header verwiesen, nicht auf dein db script.
Ähm, bei einem "moved temporarily" würde ich davon ausgehen, dass die Suchmaschine sehr wohl die URL aufnimmt und nicht davon ausgeht, dass der link veraltet ist - sonst würde ich ja ein moved permanently senden...!?
Und was heißt "wird er direkt auf den location header verwiesen"?
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 11.09.2007, 01:11  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Agrajag
Zitat:
Zitat von brian johnson
der header "moved temporarily" mit einem verbunden "location" header ist dem browser wurscht, der geht sofort auf die genannte location weiter.
Was soll denn "wurscht" in diesem Zusammgenhang heißen?
wurscht = egal

Zitat:
Und was soll heißen "der geht sofort auf die genannte Location weiter?
na folgendes: wenn der browser keinen location header zu dem "moved permanently" header bekommt, zeigt er seine eigene fehlerseite zu "moved permanently". bekommt er allerdings einen location header dazu, geht er diesem nach....

Zitat:
Zitat von Agrajag
Zitat:
Zitat von brian johnson
interessant ist das nur für sumas. die gehen nämlich, wegen des "moved temporarily" header, davon aus, das der aktuelle link veraltet ist und benutzen stattdessen den neuen. falls also jmd. von ner suma auf deine datei zugreift, wird er direkt auf den location header verwiesen, nicht auf dein db script.
Ähm, bei einem "moved temporarily" würde ich davon ausgehen, dass die Suchmaschine sehr wohl die URL aufnimmt und nicht davon ausgeht, dass der link veraltet ist - sonst würde ich ja ein moved permanently senden...!?
hups meinte natürlich moved permanently....mein fehler

Zitat:
Und was heißt "wird er direkt auf den location header verwiesen"?
wenn eine seite den header "moved permanently" verbunden mit einem location header sendet, speichert die suma nicht den "moved permanently" link sondern den link vom location header. und genau dahin verlinkt sie auch....
brian johnson ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] header location krackmoe PHP Tipps 2008 10 30.07.2008 14:41
https header und Cookie TailerD PHP Tipps 2008 5 26.01.2008 19:54
header (location: ...) Tigermoon PHP Tipps 2006 4 21.04.2006 13:40
Header Location Suchmaschinentauglich? DonTermi Beitragsarchiv 5 16.08.2005 12:22
Header Location aus Frame für die ganze Seite laden Plague PHP Tipps 2005 3 22.05.2005 16:06
localhost / Variabeln in header() RoDa PHP Tipps 2005 11 02.05.2005 14:37
Problem: Cannot modify header information Alpha Centauri PHP Tipps 2005 11 25.04.2005 13:05
zu anderer php.seite umlenken (ohne header, location:) PHP Tipps 2005 8 06.04.2005 09:42
[Erledigt] Datei selber nach einer Abfrage senden, header() geht nicht? PHP Tipps 2005 2 23.02.2005 05:58
header (location: $var) PHP Tipps 2005 14 19.01.2005 10:37
header (Location - Problem PHP Tipps 2004 4 20.10.2004 02:01
header location andrew22 PHP Tipps 2004 1 07.09.2004 12:13
Header Location funktioniert nicht PHP Tipps 2004 10 12.08.2004 17:11
Warning: Cannot modify header... einbinden nicht möglich? PHP Tipps 2004 2 07.08.2004 15:06
Header Probleme! Calexico PHP Tipps 2004 7 30.06.2004 23:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php readfile header, php header readfile, php readfile, readfile php header, header location nach readfile, readfile vs header location, header http moved 307, php header 307 moved temporarily, http://www.php.de/php-tipps-2008/44676-readfile-vs-header-location.html, php fileread vs location, header readfile, php download ohne readfile, download ohne header location, php readfile header danach weiterleiten, header location file://, readfile php ressourcen, readfile wird verwendet für, php readfile ressourcen schonen, header location fertig laden, php header download ohne readfile

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.