abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
včera 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 0
včera 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 1
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 25
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (8%)
 (5%)
 (3%)
Celkem 785 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"

Petr Tomášek avatar 28.12.2008 12:21 Petr Tomášek | skóre: 36 | blog: Vejšplechty
Jak poslat v php hlavičku "HTTP/1.1 100 Continue"
Přečteno: 753×

Zdravím!

Podle RFC2616 (8.2.3; 10.1.1 a 14.20.) je možné při HTTP POST/PUT(atd.), aby dříve, než klient pošle vlastní tělo žádosti na server, server otestoval podle hlaviček, zda-li obsah přijme nebo ne. Server pak může odpovědět pomocí "100 Continue" (v tom případě klient pokračuje v posílání těla žádosti), nebo hodit chybovou hlášku (např. "417 Precondition Failed"); v tom případě už klient nic neposílá.

Problém ovšem je, jak toho dosáhnout. Pokud použiji header() dvakrát, tj. jednou s kódem 100 a podruhé s jiným, pak při druhém použití fce header() prudí PHP s tím, že "headers already sent"...

Dá se s tím něco (rozumného) dělat?

Díky!

 

 

Odpovědi

28.12.2008 12:50 moira | skóre: 30 | blog: nesmysly
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"
PHP uz delsi dobu nepouzivam ale nepomuze zapnuti bufferovani vystupu?
Překladač ti nikdy neřekne: "budeme kamarádi"
Petr Tomášek avatar 29.12.2008 17:03 Petr Tomášek | skóre: 36 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"

Jj, díky, pomohlo to, lépe řečeno, pomohlo bufferování nevypínat (lépe řečeno vypnout jenom to, co je potřeba). Nakonec, tohle funguje:

 

    if ($_SERVER["HTTP_EXPECT"]=="100-continue" && $_SERVER["SERVER_PROTOCOL"]=="HTTP/1.1")
    {
      header("HTTP/1.1 100 Continue", false);
      ob_flush();
    }

29.12.2008 18:48 luky
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"
Nejspis brzy zjistite, ze je to reseni na hov k nicemu a uplne staci drzet se te hlasky a proste poslat hlavicky driv nez data.
Petr Tomášek avatar 18.2.2009 17:35 Petr Tomášek | skóre: 36 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"

Proč by to mělo být na h***? Pokud chce člověk korektně např. naimplementovat věci jako GroupDAV, pak ani jinou možnost nemá...

19.2.2009 11:41 David Růžička
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"

Jde o to, že zřejmě už posíláte nějaká data, třeba i nechtěně, a přitom nemusíte.

Momentálně tedy děláte něco takového:

Klient(GET/POST/PUT)-----------> Server
Klient <--------------(hlavičky) Server
Klient <-----------(nějaká data) Server
Klient <--------(další hlavičky) Server
Klient <------------------(data) Server

a chcete tohle:

Klient(GET/POST/PUT)-----------> Server
Klient <--------------(hlavičky) Server
Klient <--------(další hlavičky) Server
Klient <------------------(data) Server

 

Ta "nějaká data" mohou být např. nechtěné odřádkovánínebo mezera v nějakém inkludovaném souboru (za posledním ?>) nebo nějaké echo nebo print ještě v první fázi práce skriptu, kdy ještě nechcete klientovi posílat data.

Petr Tomášek avatar 24.2.2009 08:54 Petr Tomášek | skóre: 36 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"

To je kravina, jak jsem psal, hlášku "header already sent" to píše pouze pokud použiji dvakrát po sobě header() se stavovým kódem, nikoliv když použiji header() jen jednou - což dokazuje, že data nikde mezitím neposílám. IMHO bude chyba někde v implementaci php...

24.2.2009 13:16 cronin | skóre: 48
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"
Nie je problem v tom, ze PHP by nemalo mat nic co docinenia s posielanim spravy HTTP 1xx? Ibazeby bol v PHP napisany komplet HTTP server, nielen iba aplikacia. Asi som nieco nepochopil, ale pride mi to trochu od veci, aby aplikacia rozhodovala o statuse HTTP spravy, ktora sa posle klientovi. IMHO aplikacia vo vseobecnosti ani nema pocitat s tym, ze jej vystup je klientovi doruceny tym ci onym komunikacnym protokolom.
Petr Tomášek avatar 24.2.2009 19:21 Petr Tomášek | skóre: 36 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"

Proč, propána? :-o

24.2.2009 20:48 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"
Co to máte za nápad, posílat dvě různé odpovědi za sebou? Jste si jistý, že to je v souladu se specifikací???
13.2.2010 20:34 xurpha
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"
No, jenze presne k tomu ta hlavicka "HTTP/1.1 100 Continue" je, viz RFC...
14.2.2010 10:33 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak poslat v php hlavičku "HTTP/1.1 100 Continue"
Zkusil jste použít funkci header se třetím parametrem a replace nastaveným na true?
header('x', TRUE, 100);
header('x', TRUE, 200);
Mimochodem, odpověď 100-Continue můžete odpovědět jedině v případě, kdy klient pošle Expect: 100-continue.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.