Rumah php教程 php手册 PHP实时输出报文到浏览器

PHP实时输出报文到浏览器

Jun 13, 2016 am 10:47 AM
head html php yahoo pengoptimuman hujung hadapan masa sebenar berlatih ya pelayar daripada keluaran

Yahoo的前端优化实践中有一条是先把html里的

部分先输出(Flush the Buffer Early),这样做浏览器得到head后能先下载head里的css/js文件,而不用等到整个html下载完了才去下载head里的css/js,从而提高网页打开的速度。
 
http1.1里增加了一个Transfer-Encoding: chunked报头,这个报头的作用可以把报文分成多块输出。
 
报文的格式如下:
Java代码 
  Chunked-Body = *chunk  
         "0" CRLF  
         footer  
         CRLF   
  chunk = chunk-size [ chunk-ext ] CRLF  
      chunk-data CRLF  
  hex-no-zero =   
  chunk-size = hex-no-zero *HEX  
  chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-value ] )  
  chunk-ext-name = token  
  chunk-ext-val = token | quoted-string  
  chunk-data = chunk-size(OCTET)  
  footer = *entity-header 
 
  Chunked-Body = *chunk
         "0" CRLF
         footer
         CRLF
  chunk = chunk-size [ chunk-ext ] CRLF
      chunk-data CRLF
  hex-no-zero =
  chunk-size = hex-no-zero *HEX
  chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-value ] )
  chunk-ext-name = token
  chunk-ext-val = token | quoted-string
  chunk-data = chunk-size(OCTET)
  footer = *entity-header
CRLE:回车换行(\r\n)
例如:
Java代码 
...                          #很多报头  
Transfer-Encoding: chunked   #报头2个CRLE后开始报文  
                               
1                            #chunk的大小,十六进制,然后加个CRLE  
a                            #chunk数据,然后加个CRLE  
4                            #chunk的大小,十六进制,然后加个CRLE  
test                         #chunk数据,可以不断循环分块输出,然后加个CRLE  
0                            #chunk结束,0 + 2个CRLE 
 
...                          #很多报头
Transfer-Encoding: chunked   #报头2个CRLE后开始报文
                            
1                            #chunk的大小,十六进制,然后加个CRLE
a                            #chunk数据,然后加个CRLE
4                            #chunk的大小,十六进制,然后加个CRLE
test                         #chunk数据,可以不断循环分块输出,然后加个CRLE
0                            #chunk结束,0 + 2个CRLE
 
 
 
在php里使用ob_flush后,将自动加上Transfer-Encoding: chunked报头实现分块输出,但是在使用过程中经常达不到效果。不得不考虑一些问题
 
一、php的缓冲区
如果你的php是以apache模块运行,那请使用flush函数来通知php输出。如果是以fastcgi模式运行则使用ob_flush通知php。这时gzip将失效,Chunked方式不支持每块都独立压缩。只能全部输出压缩后,将压缩包分块输出。为了保证兼容性,先调用ob_flush,再调用flush。
 
二、浏览器的缓冲区
当遇到Transfer-Encoding: chunked报头后,浏览器做什么反应,这个还是要看浏览器的实现了。在我的实验中,firefox不管chunk数据大小都会做实时显示,而ie8和chrome则需要一定长度后才显示。所以,需要先输出一定的大小后某些浏览器才有效果。
 
三、反向代理服务器
你使用的反向代理服务器支持http1.1协议吗?它是怎么处理后端是chunked方式的?proxy缓冲没满之前遇到chunked会按照后端来输出吗?
 
nginx的proxy功能只支持http1.0,并且它只有proxy buffer满了才会输出。
 
四、FastCGI缓冲
如果以FastCGI模式运行,可能Web Server有自己的fastcgi缓冲,等待缓冲满了才输出(nginx就这样)。flush函数只能通知php的output缓冲输出

Chunked transfer encoding
Hypertext Transfer Protocol -- HTTP/1.1 Chunked transfer encoding
深入理解ob_flush和flush的区别
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tutorial muat turun domestik Tutorial muat turun domestik Mar 21, 2025 pm 05:42 PM

Artikel ini menyediakan panduan terperinci untuk muat turun selamat aplikasi OUYI OKX di China. Oleh kerana sekatan ke kedai aplikasi domestik, pengguna dinasihatkan untuk memuat turun aplikasi melalui laman web rasmi OUYI OKX, atau menggunakan kod QR yang disediakan oleh laman web rasmi untuk mengimbas dan memuat turun. Semasa proses muat turun, pastikan anda mengesahkan alamat laman web rasmi, periksa kebenaran aplikasi, lakukan imbasan keselamatan selepas pemasangan, dan membolehkan pengesahan dua faktor. Semasa penggunaan, sila mematuhi undang -undang dan peraturan tempatan, gunakan persekitaran rangkaian yang selamat, melindungi keselamatan akaun, berhati -hati terhadap penipuan, dan melabur secara rasional. Artikel ini hanya untuk rujukan dan tidak menjadi nasihat pelaburan.

Port Login Exchange Coinbase 2025 Port Login Exchange Coinbase 2025 Mar 21, 2025 pm 05:51 PM

Panduan Masuk Keselamatan Coinbase: Bagaimana untuk mengelakkan tapak pancingan data dan penipuan? Phishing dan penipuan menjadi semakin berleluasa, dan sangat penting untuk mengakses portal log masuk rasmi Coinbase. Artikel ini menyediakan panduan praktikal untuk membantu pengguna mencari dan menggunakan portal log masuk rasmi terkini Coinbase untuk melindungi keselamatan aset digital. Kami akan meliputi cara mengenal pasti tapak pancingan data, dan bagaimana untuk log masuk dengan selamat melalui laman web rasmi, aplikasi mudah alih atau platform pihak ketiga yang dipercayai, dan memberikan cadangan untuk meningkatkan keselamatan akaun, seperti menggunakan kata laluan yang kuat dan membolehkan pengesahan dua faktor. Untuk mengelakkan kerugian aset kerana log masuk yang salah, pastikan anda membaca artikel ini dengan teliti!

Portal pendaftaran terkini untuk laman web rasmi OUYI Portal pendaftaran terkini untuk laman web rasmi OUYI Mar 21, 2025 pm 05:54 PM

Sebagai platform perdagangan aset digital terkemuka di dunia, Ouyi Okx menarik banyak pelabur dengan produk dagangannya yang kaya, jaminan keselamatan yang kuat dan pengalaman pengguna yang mudah. Walau bagaimanapun, risiko keselamatan rangkaian menjadi semakin teruk, dan bagaimana untuk mendaftarkan akaun OUYI OKX rasmi adalah penting. Artikel ini akan menyediakan portal pendaftaran terkini untuk laman web rasmi OUYI OKX, dan menerangkan secara terperinci langkah-langkah dan langkah berjaga-jaga untuk pendaftaran yang selamat, termasuk cara mengenal pasti laman web rasmi, menetapkan kata laluan yang kuat, membolehkan pengesahan dua faktor, dan lain-lain, untuk membantu anda memulakan perjalanan pelaburan aset digital anda dengan selamat dan mudah. Sila ambil perhatian bahawa terdapat risiko dalam pelaburan aset digital, sila buat keputusan berhati -hati.

Tutorial Muat turun Muat turun Domestik Binance Exchange App Tutorial Muat turun Muat turun Domestik Binance Exchange App Mar 21, 2025 pm 05:45 PM

Artikel ini menyediakan panduan muat turun aplikasi Binance Exchange yang selamat dan boleh dipercayai untuk membantu pengguna menyelesaikan masalah memuat turun aplikasi Binance di negara ini. Oleh kerana sekatan ke atas kedai-kedai aplikasi domestik, artikel itu mengesyorkan keutamaan untuk memuat turun pakej pemasangan APK dari laman web rasmi Binance, dan memperkenalkan tiga kaedah: muat turun laman web rasmi, muat turun kedai pihak ketiga, dan perkongsian rakan-rakan. Di samping itu, artikel itu juga mengingatkan pengguna untuk memahami undang -undang dan peraturan tempatan, memberi perhatian kepada keselamatan rangkaian, melindungi maklumat peribadi, berhati -hati dengan penipuan, pelaburan rasional, dan urus niaga yang selamat. Pada akhir artikel, artikel itu sekali lagi menekankan bahawa memuat turun dan menggunakan aplikasi Binance mesti mematuhi undang -undang dan peraturan tempatan, dan dengan risiko anda sendiri, dan tidak menjadi nasihat pelaburan.

Log masuk ke laman web rasmi terbaru Bitmex Exchange Log masuk ke laman web rasmi terbaru Bitmex Exchange Mar 21, 2025 pm 06:06 PM

Artikel ini menyediakan panduan yang selamat dan boleh dipercayai untuk membantu pengguna mengakses laman web rasmi terbaru Bitmex Exchange dan meningkatkan keselamatan transaksi. Oleh kerana ancaman pengawalseliaan dan siber, adalah penting untuk mengenal pasti laman web Bitmex rasmi dan mengelakkan laman web pancingan data mencuri maklumat dan dana akaun. Artikel ini memperkenalkan pencarian portal laman web rasmi melalui platform cryptocurrency yang dipercayai, media sosial rasmi, media berita, dan melanggan e-mel rasmi. Ingat, perdagangan cryptocurrency berisiko tinggi, sila melabur dengan berhati -hati.

Portal log masuk versi web Coinbase Exchange Portal log masuk versi web Coinbase Exchange Mar 21, 2025 pm 05:48 PM

Versi Web Exchange Coinbase adalah popular untuk kemudahannya, tetapi akses yang selamat adalah penting. Artikel ini bertujuan untuk membimbing pengguna untuk log masuk ke versi Web Coinbase rasmi dengan selamat dan mengelakkan laman web dan penggodam phishing. Kami akan menerangkan secara terperinci bagaimana untuk mengesahkan portal rasmi melalui enjin carian, platform pihak ketiga yang dipercayai dan media sosial rasmi, dan menekankan langkah-langkah keselamatan seperti memeriksa kunci keselamatan bar alamat, membolehkan pengesahan dua faktor, mengelakkan Wi-Fi awam, mengubah kata laluan secara berkala, dan berjaga-jaga dengan e-mel untuk memastikan keselamatan aset digital anda. Akses yang betul ke laman web Coinbase rasmi adalah langkah pertama untuk melindungi mata wang digital anda.

Pintu masuk laman web rasmi Bitmex Exchange Pintu masuk laman web rasmi Bitmex Exchange Mar 21, 2025 pm 06:03 PM

Sebagai platform perdagangan derivatif cryptocurrency veteran, ketepatan pintu masuk laman web rasminya adalah penting. Oleh kerana laman web phishing yang berleluasa, kemasukan yang salah ke laman web palsu boleh menyebabkan kecurian akaun dan kehilangan dana. Artikel ini bertujuan untuk membimbing pengguna untuk mengakses laman web rasmi Bitmex dengan selamat, menyediakan pelbagai kaedah seperti platform maklumat cryptocurrency yang dipercayai (seperti coinmarketcap, coingecko), media sosial rasmi, pengesahan alamat yang sedia ada dan saluran sokongan rasmi, dan menekankan penggunaan langkah-langkah keselamatan seperti pengesahan

Bagaimana untuk menyelesaikan masalah antara muka pihak ketiga yang kembali 403 dalam persekitaran Node.js? Bagaimana untuk menyelesaikan masalah antara muka pihak ketiga yang kembali 403 dalam persekitaran Node.js? Mar 31, 2025 pm 11:27 PM

Selesaikan masalah antara muka pihak ketiga yang kembali 403 dalam persekitaran Node.js. Apabila kita menggunakan Node.js untuk memanggil antara muka pihak ketiga, kita kadang-kadang menghadapi kesilapan 403 dari antara muka yang kembali 403 ...

See all articles