HTTP ditulis oleh Hypertext Transfer Protocol. Seluruh World Wide Web menggunakan protokol ini. Hampir sebagian besar konten yang Anda lihat di browser Anda ditransmisikan melalui protokol HTTP, seperti artikel ini.
Header HTTP adalah permintaan HTTP dan core yang sesuai, dan membawa informasi tentang browser klien, halaman permintaan, server, dll.
Saat Anda mengetikkan URL di bilah alamat browser, browser Anda akan mirip dengan permintaan HTTP berikut:
GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
Host: net.tutsplus.com
Pengguna-agen: mozilla/5.0 (windows; u; windows nt 6.1; en-us; rv: 1.9.1.5) tokek/20091102 firefox/3.5.5 (.net clr 3.5.30729)
Terima: Teks/HTML, Aplikasi/XHTML+XML, Aplikasi/XML; q = 0.9,*/*; q = 0.8
Penerimaan-bahasa: en-us, en; q = 0,5
Accept-Encoding: GZIP, mengempis
Accept-Charset: ISO-8859-1, UTF-8; q = 0,7,*; q = 0,7
Keep-seive: 300
Koneksi: Keep-seive
Cookie: phpsessid = r2t5uvjq435r4q7ib3vtdjq120
Pragma: Tidak ada cache
Cache-Control: No-Cache
Baris pertama disebut jalur permintaan. Ini menjelaskan informasi dasar dari permintaan ini, dan sisanya adalah header HTTP.
Setelah permintaan selesai, browser Anda dapat menerima tanggapan HTTP berikut:
HTTP/1.x 200 OK
Transfer-encoding: Dipotong
Tanggal: Sabtu, 28 Nov 2009 04:36:25 GMT
Server: Litespeed
Koneksi: Tutup
X-Powered-by: W3 Total Cache/0.8
Pragma: Publik
Kedaluwarsa: Sabtu, 28 Nov 2009 05:36:25 GMT
Etag: PUB1259380237; GZ
Cache-Control: Max-Age = 3600, Publik
Tipe konten: teks/html; Charset = UTF-8
Modifikasi Terakhir: Sat, 28 Nov 2009 03:50:37 GMT
X-Pingback: http://net.tutsplus.com/xmlrpc.php
Pengodean konten: GZIP
Bervariasi: penerimaan kode, cookie, agen pengguna
<!-... sisa html ...->
Baris pertama disebut garis status, yang diikuti oleh header HTTP. Setelah baris kosong selesai, konten akan menjadi output (dalam hal ini, beberapa output HTML).
Tetapi Anda tidak dapat melihat header HTTP ketika Anda melihat kode sumber halaman, meskipun mereka dikirim ke browser bersama dengan apa yang dapat Anda lihat.
Permintaan HTTP ini juga mengirimkan beberapa permintaan untuk menerima sumber daya lain, seperti gambar, file CSS, file JS, dll.
Mari kita lihat detail di bawah ini.
Ekstensi Firefox berikut dapat membantu Anda menganalisis header HTTP:
1. Firebug
2. header http
3. Dalam PHP:
Di bawah artikel ini, Anda akan melihat beberapa contoh menggunakan demonstrasi PHP.
Baris pertama, yang disebut baris pertama, berisi tiga bagian:
Bagian yang tersisa adalah setiap baris dengan nama: nilai pasangan. Mereka berisi berbagai informasi tentang permintaan dan browser Anda. Misalnya, agen pengguna menunjukkan versi browser Anda dan sistem operasi yang Anda gunakan. Accept-Encoding akan memberi tahu server bahwa penelusuran Anda dapat menerima output terkompresi yang mirip dengan GZIP.
Sebagian besar header ini opsional. Permintaan HTTP bahkan dapat dikurangi menjadi ini:
GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
Host: net.tutsplus.com
Dan Anda masih dapat menerima respons yang valid dari server.
Tiga jenis permintaan yang paling umum adalah: Dapatkan, Posting dan Kepala. Anda mungkin sudah terbiasa dengan dua yang pertama selama proses penulisan HTML.
Sebagian besar HTML, Gambar, JS, CSS, ... yang dikirimkan ke browser diminta melalui metode GET. Ini adalah cara utama untuk mendapatkan data.
Misalnya, untuk mendapatkan artikel Nettus+, baris pertama dari permintaan HTTP biasanya terlihat seperti ini:
GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
Setelah HTML dimuat, browser akan mengirim permintaan mendapatkan untuk mendapatkan gambar, seperti ini:
GET /wp-content/themes/tuts_theme/images/header_bg_tall.png HTTP/1.1
Formulir ini juga dapat dikirim melalui metode GET. Inilah contohnya:
<form action=foo.php method=GET>
Nama Depan: <Input Name = First_Name Type = Teks />
Nama Belakang: <Input Name = Last_Name Type = Teks />
<input name = Action type = Kirim Nilai = Kirim />
</form>
Ketika formulir ini dikirimkan, permintaan HTTP akan terlihat seperti ini:
GET /foo.php?first_name=John&last_name=Doe&action=Submit HTTP/1.1
...
Anda dapat mengirim input formulir ke server dengan menambahkannya ke string kueri.
Meskipun Anda dapat melampirkan data ke URL melalui metode GET untuk meneruskannya ke server, lebih tepat untuk menggunakan POST untuk mengirim data ke server dalam banyak kasus. Adalah tidak realistis untuk mengirim sejumlah besar data melalui GET, dan memiliki batasan tertentu.
Adalah umum untuk menggunakan permintaan pos untuk mengirim data formulir. Mari kita ubah contoh di atas untuk menggunakan posting:
<form action=foo.php method=POST>
Nama Depan: <Input Name = First_Name Type = Teks />
Nama Belakang: <Input Name = Last_Name Type = Teks />
<input name = Action type = Kirim Nilai = Kirim />
</form>
Mengirimkan formulir ini akan membuat permintaan HTTP sebagai berikut:
POST /foo.php HTTP/1.1
Host: Localhost
Pengguna-agen: mozilla/5.0 (windows; u; windows nt 6.1; en-us; rv: 1.9.1.5) tokek/20091102 firefox/3.5.5 (.net clr 3.5.30729)
Terima: Teks/HTML, Aplikasi/XHTML+XML, Aplikasi/XML; q = 0.9,*/*; q = 0.8
Penerimaan-bahasa: en-us, en; q = 0,5
Accept-Encoding: GZIP, mengempis
Accept-Charset: ISO-8859-1, UTF-8; q = 0,7,*; q = 0,7
Keep-seive: 300
Koneksi: Keep-seive
Referensi: http: //localhost/test.php
Tipe konten: Aplikasi/X-WWW-Form-Urlencoded
Panjang konten: 43
first_name = John & last_name = doe & action = kirim
Berikut adalah tiga hal yang perlu diperhatikan:
Permintaan metode pos juga dapat digunakan pada AJAX, Aplikasi, Curl…. Dan semua formulir unggahan file diperlukan untuk menggunakan postingan.
Kepala dan dapatkan sangat mirip, kecuali kepala tidak menerima bagian konten dari respons HTTP. Ketika Anda mengirim permintaan kepala, itu berarti Anda hanya tertarik pada header HTTP, bukan dokumen itu sendiri.
Metode ini memungkinkan browser untuk menentukan apakah halaman telah dimodifikasi dan dengan demikian mengontrol cache. Dapat juga ditentukan apakah dokumen yang diminta ada.
Misalnya, jika Anda memiliki banyak tautan di situs web Anda, Anda dapat mengirimnya permintaan kepala secara terpisah untuk menentukan apakah ada tautan mati, yang jauh lebih cepat daripada menggunakan Get.
Ketika browser mengirimkan permintaan HTTP, server akan menanggapi permintaan melalui respons HTTP. Jika Anda tidak peduli dengan konten, maka permintaan akan terlihat seperti ini:
Informasi berharga pertama adalah perjanjian. Saat ini, server akan menggunakan HTTP/1.x atau HTTP/1.1.
Selanjutnya pesan singkat mewakili status. Kode 200 berarti bahwa permintaan kami telah berhasil dikirim, dan server akan mengembalikan dokumen yang diminta setelah informasi header.
Kita semua telah melihat halaman 404. Ketika saya meminta jalur yang tidak ada dari server, server menanggapi kami dengan 404, bukan 200.
Respons lainnya mirip dengan permintaan HTTP. Ini tentang perangkat lunak server, ketika halaman/file telah dimodifikasi, tipe MIME, dll ...
Demikian pula, informasi header ini opsional.
Seperti disebutkan di atas, 200 digunakan untuk menunjukkan bahwa permintaan berhasil.
206 konten parsialJika suatu aplikasi hanya meminta file dalam rentang tertentu, itu akan mengembalikan 206.
Ini biasanya digunakan untuk manajemen unduhan, lanjutan breakpoint atau unduhan file chunking.
404 tidak ditemukanMudah dimengerti
401 tidak sahHalaman yang dilindungi kata sandi akan kembali ke status ini. Jika Anda tidak memasukkan kata sandi yang benar, Anda akan melihat informasi berikut di browser Anda:
Perhatikan bahwa ini hanyalah halaman yang dilindungi kata sandi. Kotak pop-up yang meminta untuk memasukkan kata sandi terlihat seperti ini:
403 dilarangJika Anda tidak memiliki izin untuk mengakses halaman, itu akan kembali ke status 403. Ini biasanya terjadi ketika Anda mencoba membuka folder tanpa halaman indeks. Jika pengaturan server tidak memungkinkan melihat konten direktori, Anda akan melihat kesalahan 403.
Metode lain juga mengirimkan pembatasan izin, seperti Anda dapat memblokirnya melalui alamat IP Anda, yang memerlukan beberapa bantuan htaccess.
order allow,deny
DENY dari 192.168.44.201
DENY dari 224.39.163.12
DENY dari 172.16.7.92
Izinkan dari semua
302 (atau 307) bergerak sementara dan 301 bergerak secara permanenKedua negara bagian ini akan muncul ketika browser mengarahkan ulang. Misalnya, Anda menggunakan layanan pemendekan URL seperti Bit.ly. Ini juga bagaimana mereka tahu siapa yang mengklik tautan mereka.
302 dan 301 sangat mirip dengan browser, tetapi ada beberapa perbedaan untuk perayap mesin pencari. Misalnya, jika situs web Anda sedang dipertahankan, Anda akan mengarahkan kembali browser klien ke alamat lain dengan 302. Crawler mesin pencari akan mengindeks ulang halaman Anda di masa depan. Tetapi jika Anda menggunakan pengalihan 301, itu berarti Anda memberi tahu crawler mesin pencari: Situs web Anda telah dipindahkan secara permanen ke alamat baru.
500 Kesalahan Server (Kesalahan Server Internal)Kode ini biasanya muncul ketika skrip halaman macet. Sebagian besar skrip CGI tidak mengeluarkan pesan kesalahan ke browser seperti PHP. Jika kesalahan fatal terjadi, mereka hanya akan mengirim kode status 500. Saat ini, Anda perlu memeriksa log kesalahan server untuk memecahkan masalah.
Daftar LengkapAnda dapat menemukan deskripsi kode status http lengkap di sini. Atau periksa di sini (http://tools.vevb.com/table/http_status_code).
Sekarang mari kita lihat beberapa informasi permintaan HTTP yang umum di header HTTP.
Semua informasi header ini dapat ditemukan di array $ _server PHP. Anda juga dapat menggunakan fungsi getAllHeaders () untuk mendapatkan semua informasi header sekaligus.
Permintaan HTTP akan dikirim ke alamat IP tertentu, tetapi sebagian besar server memiliki kemampuan untuk meng -host beberapa situs web di bawah alamat IP yang sama, sehingga server harus tahu nama domain mana yang diminta oleh browser.
Host: rlog.cn
Ini hanyalah nama host dasar, termasuk nama domain dan nama domain anak.
Dalam PHP, Anda dapat melihatnya melalui $ _Server ['http_host'] atau $ _server ['server_name'].
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Kepala ini dapat membawa informasi berikut:
Ini adalah metode umum yang digunakan oleh beberapa situs web untuk mengumpulkan informasi pengunjung. Misalnya, Anda dapat mengetahui apakah pengunjung menggunakan ponsel Anda untuk mengunjungi situs web Anda dan kemudian memutuskan apakah akan mengarahkannya ke situs web seluler yang berkinerja baik dengan resolusi rendah.
Dalam PHP, agen pengguna dapat diperoleh melalui $ _server ['http_user_agent']
if ( strstr($_SERVER['HTTP_USER_AGENT'],'MSIE 6') ) {
Echo tolong berhenti menggunakan IE6!;
}
Accept-Language: en-us,en;q=0.5
Informasi ini dapat menunjukkan pengaturan bahasa default pengguna. Jika situs web memiliki versi bahasa yang berbeda, Anda dapat menggunakan informasi ini untuk mengarahkan kembali browser pengguna.
Itu dapat dilakukan dalam berbagai bahasa dengan segmentasi koma. Yang pertama akan menjadi bahasa yang disukai, dan bahasa lain akan membawa nilai q untuk menunjukkan preferensi pengguna untuk bahasa (0 ~ 1).
Gunakan $ _Server [http_accept_language] di PHP untuk mendapatkan informasi ini.
if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == 'fr') {
header ('Lokasi: http://french.mydomain.com');
}
Accept-Encoding: gzip,deflate
Sebagian besar browser modern mendukung kompresi GZIP dan akan melaporkan informasi ini ke server. Pada saat ini, HTML terkompresi akan dikirim ke browser. Ini dapat mengurangi ukuran file dengan hampir 80% untuk menghemat waktu dan bandwidth unduhan.
Informasi ini dapat diperoleh dengan menggunakan $ _Server [http_accept_encoding] di PHP. Maka nilainya akan terdeteksi secara otomatis ketika metode OB_GZHandler () dipanggil, jadi Anda tidak perlu mendeteksinya secara manual.
// enables output buffering
// dan semua output dikompresi jika browser mendukungnya
ob_start ('ob_gzhandler');
Jika sebuah halaman telah di -cache di browser Anda, lain kali Anda menjelajah browser akan memeriksa apakah dokumen telah dimodifikasi, dan itu akan mengirim header seperti ini:
If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT
Jika belum dimodifikasi sejak saat ini, server akan mengembalikan 304 tidak dimodifikasi dan tidak akan mengembalikan konten. Browser akan secara otomatis membaca konten di cache
Dalam PHP, Anda dapat menggunakan $ _Server ['http_if_modified_since'] untuk mendeteksi.
// assume $last_modify_time was the last the output was updated
// Apakah browser mengirim header IF-Modified-Since?
if (isset ($ _ server ['http_if_modified_since'])) {
// Jika cache browser cocok dengan waktu yang dimodifikasi
if ($ last_modify_time == strtoTime ($ _ server ['http_if_modified_since'])) {
// Kirim header 304, dan tidak ada konten
header (http/1.1 304 tidak dimodifikasi);
KELUAR;
}
}
Ada juga header HTTP yang disebut ETAG, yang digunakan untuk menentukan apakah informasi yang di -cache benar, dan kami akan menjelaskannya nanti.
Seperti namanya, itu akan mengirim informasi cookie yang disimpan di browser Anda ke server.
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120; foo=bar
Ini adalah seperangkat pasangan nilai nama yang dibagi dengan titik koma. Cookie juga dapat menyertakan ID sesi.
Dalam PHP, satu cookie dapat diperoleh dengan mengakses array $ _cookie. Anda dapat secara langsung menggunakan array $ _Session untuk mendapatkan variabel sesi. Jika Anda memerlukan ID sesi, maka Anda dapat menggunakan fungsi session_id () alih -alih cookie.
echo $_COOKIE['foo'];
// Output: Bar
echo $ _cookie ['phpsessid'];
// output: r2t5uvjq435r4q7ib3vtdjq120
session_start ();
echo session_id ();
// output: r2t5uvjq435r4q7ib3vtdjq120
Seperti namanya, header akan berisi informasi URL merujuk.
Misalnya, saya mengunjungi halaman beranda Nettus+ dan mengklik tautan, dan header ini akan dikirim ke browser:
Referer: http://net.tutsplus.com/
Dalam PHP, nilainya dapat diperoleh dengan $ _Server ['http_referer'].
if (isset($_SERVER['HTTP_REFERER'])) {
$ url_info = parse_url ($ _ server ['http_referer']);
// Apakah peselancar datang dari google?
if ($ url_info ['host'] == 'www.google.com') {
parse_str ($ url_info ['kueri'], $ vars);
Echo Anda mencari di Google untuk kata kunci ini :. $ vars ['q'];
}
}
// Jika URL yang merujuk adalah:
// http://www.google.com/search?source=ig&hl=en&rlz=&=&q=http+headers&aq=f&oq=&aqi=g-p1g9
// Outputnya akan:
// Anda mencari di Google untuk kata kunci ini: header http
Anda mungkin telah memperhatikan kata pengirimnya salah eja sebagai referer. Sayangnya itu dibuat menjadi spesifikasi HTTP resmi seperti itu dan macet.
Ketika halaman membutuhkan otorisasi, browser akan memunculkan jendela login. Setelah memasukkan akun yang benar, browser akan mengirim permintaan HTTP, tetapi akan berisi header:
Authorization: Basic bXl1c2VyOm15cGFzcw==
Bagian informasi yang terkandung dalam header ini dikodekan. Misalnya, base64_decode ('bxl1c2vyom15cgfzcw ==') akan dikonversi menjadi 'myuser: mypass'.
Dalam PHP, nilai ini dapat diperoleh dengan $ _Server ['php_auth_user'] dan $ _server ['php_auth_pw'].
Kami akan menjelaskan detail lebih lanjut di bagian WWW-Authenticated.
Sekarang izinkan saya memahami beberapa informasi respons HTTP dalam header HTTP yang umum.
Dalam PHP, Anda dapat mengatur informasi respons header melalui header (). PHP telah secara otomatis mengirim beberapa informasi header yang diperlukan, seperti konten yang dimuat, mengatur cookie, dll ... Anda dapat melihat yang dikirim dan untuk dikirim melalui fungsi headers_list (). Anda juga dapat menggunakan fungsi headers_sent () untuk memeriksa apakah informasi header telah dikirim.
W3.org didefinisikan sebagai: Cache-Control General-Header Field digunakan untuk menentukan arahan yang harus dipatuhi oleh semua mekanisme caching di sepanjang rantai permintaan/respons. Di mana mekanisme caching berisi beberapa informasi gateway dan proxy yang dapat digunakan ISP Anda.
Misalnya:
Cache-Control: max-age=3600, public
Publik berarti bahwa respons dapat di-cache oleh siapa pun, dan maksimal menunjukkan jumlah detik cache valid. Memungkinkan situs web Anda di -cache untuk mengurangi waktu pengunduhan dan bandwidth, sementara juga meningkatkan kecepatan pemuatan browser.
Anda juga dapat menonaktifkan cache dengan mengatur perintah tanpa cache:
Cache-Control: no-cache
Untuk detail lebih lanjut, silakan lihat W3.org.
Header ini berisi tipe MIME dari dokumen. Browser akan memutuskan cara menguraikan dokumen berdasarkan parameter ini. Misalnya, halaman HTML (atau halaman PHP dengan output HTML) akan mengembalikan sesuatu seperti ini:
Content-Type: text/html; charset=UTF-8
'Teks' adalah jenis dokumen, dan 'html' adalah subtipe dokumen. Header ini juga mencakup lebih banyak informasi, seperti Charset.
Jika itu gambar, tanggapan seperti ini akan dikirim:
Content-Type: image/gif
Browser dapat menggunakan tipe mime untuk memutuskan apakah akan menggunakan program eksternal atau untuk memperluas dokumen itu sendiri. Contoh berikut menurunkan panggilan ke Adobe Reader:
Content-Type: application/pdf
Muat secara langsung, Apache biasanya akan secara otomatis menilai tipe MIME dari dokumen dan menambahkan informasi yang sesuai ke header. Selain itu, sebagian besar browser memiliki tingkat toleransi kesalahan tertentu. Jika header tidak memberikan atau memberikan informasi secara tidak benar, itu akan secara otomatis mendeteksi tipe mime.
Anda dapat menemukan daftar tipe-mime yang umum digunakan di sini.
Dalam PHP, Anda dapat menggunakan finfo_file () untuk mendeteksi tipe IME file.
Header ini akan memberi tahu browser untuk membuka jendela unduhan file alih -alih mencoba mengurai isi respons. Misalnya:
Content-Disposition: attachment; filename=download.zip
Itu menyebabkan browser memiliki dialog seperti ini:
Perhatikan bahwa informasi header tipe konten yang sesuai juga akan dikirim.
Content-Type: application/zip
Disposisi konten: lampiran; FileName = download.zip
Ketika konten akan ditransfer ke browser, server dapat menggunakan header ini untuk menginformasikan browser ukuran (byte) file yang akan ditransfer.
Content-Length: 89123
Informasi ini cukup berguna untuk unduhan file. Inilah sebabnya mengapa browser mengetahui kemajuan unduhan.
Misalnya, di sini saya menulis skrip virtual untuk mensimulasikan unduhan yang lambat.
// it's a zip file
header ('tipe konten: aplikasi/zip');
// 1 juta byte (sekitar 1megabyte)
header ('konten-panjang: 1000000');
// Muat dialog unduh, dan simpan sebagai download.zip
header ('konten-disposisi: lampiran; nama file = download.zip');
// 1000 kali 1000 byte data
untuk ($ i = 0; $ i <1000; $ i ++) {
echo str_repeat (., 1000);
// tidur untuk memperlambat unduhan
Usleep (50000);
}
Hasilnya akan seperti ini:
Sekarang, saya mengomentari header panjang konten:
// it's a zip file
header ('tipe konten: aplikasi/zip');
// browser tidak akan tahu ukurannya
// header ('konten-panjang: 1000000');
// Muat dialog unduh, dan simpan sebagai download.zip
header ('konten-disposisi: lampiran; nama file = download.zip');
// 1000 kali 1000 byte data
untuk ($ i = 0; $ i <1000; $ i ++) {
echo str_repeat (., 1000);
// tidur untuk memperlambat unduhan
Usleep (50000);
}
Hasilnya menjadi ini:
Browser ini hanya akan memberi tahu Anda berapa banyak yang telah Anda unduh, tetapi tidak akan memberi tahu Anda seberapa banyak Anda perlu mengunduh secara total. Dan bilah kemajuan tidak akan menunjukkan kemajuan.
Ini adalah informasi header lain yang dihasilkan untuk cache. Ini akan terlihat seperti ini:
Etag: pub1259380237;gz
Server dapat menanggapi informasi ini dengan setiap file terkirim ke browser. Nilai ini dapat berisi tanggal dimodifikasi terakhir, ukuran file, atau checksum file dokumen. Penjelajahan akan menyimpannya dengan dokumen yang diterima. Lain kali browser meminta file yang sama lagi, permintaan HTTP berikut akan dikirim:
If-None-Match: pub1259380237;gz
Jika nilai Etag dokumen yang diminta konsisten dengan itu, server akan mengirim kode status 304 alih -alih 2OO. Dan tidak ada konten yang dikembalikan. Browser akan memuat file dari cache saat ini.
Seperti namanya, informasi header ini menggunakan format GMT untuk menunjukkan waktu modifikasi terakhir dari dokumen:
Last-Modified: Sat, 28 Nov 2009 03:50:37 GMT
$modify_time = filemtime($file);
header (modifikasi terakhir :. gmdate (d, d myh: i: s, $ modify_time). gmt);
Ini menyediakan mekanisme caching lain. Browser dapat mengirim permintaan seperti ini:
If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT
Kami telah membahasnya di bagian IF-Modified-Since.
Header ini digunakan untuk pengalihan. Jika kode respons adalah 301 atau 302, server harus mengirim header. Misalnya, ketika Anda mengunjungi http://www.nettus.com, browser akan menerima tanggapan berikut:
HTTP/1.x 301 Moved Permanently
...
Lokasi: http://net.tutsplus.com/
...
Dalam PHP Anda dapat mengarahkan kembali pengunjung dengan cara ini:
header('Location: http://net.tutsplus.com/');
Secara default, kode status 302 akan dikirim. Jika Anda ingin mengirim 301, tulis saja seperti ini:
header('Location: http://net.tutsplus.com/', true, 301);
Ketika sebuah situs web perlu mengatur atau memperbarui informasi cookie yang Anda telusuri, itu akan menggunakan header seperti itu:
Set-Cookie: skin=noskin; path=/; domain=.amazon.com; expires=Sun, 29-Nov-2009 21:42:28 GMT
Set-Cookie: Sesi-ID = 120-7333518-8165026; jalur =/; domain = .amazon.com; kedaluwarsa = Sabtu 27 Feb 08:00:00 2010 GMT
Setiap cookie akan digunakan sebagai header terpisah. Perhatikan bahwa mengatur cookie melalui JS tidak akan tercermin dalam header HTTP.
Dalam PHP, Anda dapat mengatur cookie melalui fungsi SetCookie (), dan PHP akan mengirim header HTTP yang sesuai.
setcookie(TestCookie, foobar);
Ini akan mengirim header seperti ini:
Set-Cookie: TestCookie=foobar
Jika waktu kedaluwarsa tidak ditentukan, cookie akan dihapus setelah browser ditutup.
Situs web dapat mengirim informasi header ini melalui HTTP untuk memverifikasi pengguna. Jendela pop-up akan terbuka ketika browser melihat respons ini di kepala.
WWW-Authenticate: Basic realm=Restricted Area
Ini akan terlihat seperti ini:
Dalam bab manual PHP, ada kode sederhana yang menunjukkan bagaimana melakukan sesuatu seperti ini dengan PHP:
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header ('www-authenticate: dasar ranah = ranah saya');
header ('http/1.0 401 tidak sah');
Teks gema 'untuk mengirim jika pengguna memukul tombol batal';
KELUAR;
} kalau tidak {
echo <p> halo {$ _server ['php_auth_user']}. </p>;
echo <p> Anda memasukkan {$ _server ['php_auth_pw']} sebagai kata sandi Anda. </p>;
}
Header ini biasanya diatur saat konten pengembalian dikompresi.
Content-Encoding: gzip
Dalam PHP, jika Anda memanggil fungsi OB_GZHandler (), header ini akan diatur secara otomatis.
Alamat asli: http://css9.net/all-about-http-headers/