HTTP ialah protokol lapisan aplikasi, walaupun versi HTTP/2 telah dilancarkan pada 2015 dan disokong oleh pelayar web dan pelayan web utama.
Ciri utamanya boleh diringkaskan seperti berikut:
Menyokong mod klien/pelayan.
Mudah dan pantas: Apabila pelanggan meminta perkhidmatan daripada pelayan, ia hanya perlu menghantar kaedah dan laluan permintaan. Disebabkan oleh kesederhanaan protokol HTTP, saiz program pelayan HTTP adalah kecil dan kelajuan komunikasi sangat pantas.
Fleksibel: HTTP membenarkan penghantaran sebarang jenis objek data. Jenis yang dipindahkan ditandakan oleh Jenis Kandungan.
Tiada sambungan: Maksud tiada sambungan adalah untuk mengehadkan setiap sambungan kepada hanya memproses satu permintaan. Selepas pelayan memproses permintaan pelanggan dan menerima respons pelanggan, ia memutuskan sambungan. Kaedah ini menjimatkan masa penghantaran.
Tanpa status: Protokol HTTP ialah protokol tanpa negara. Stateless bermakna bahawa protokol tidak mempunyai keupayaan memori untuk pemprosesan transaksi. Kekurangan status bermakna jika pemprosesan berikutnya memerlukan maklumat sebelumnya, ia mesti dihantar semula, yang boleh mengakibatkan peningkatan dalam jumlah data yang dipindahkan setiap sambungan. Sebaliknya, pelayan bertindak balas lebih cepat apabila ia tidak memerlukan maklumat sebelumnya. Untuk menyelesaikan masalah ini, program Web memperkenalkan mekanisme Kuki untuk mengekalkan keadaan.
Selain itu, mesej permintaan HTTP dan mesej respons terdiri daripada baris permulaan (untuk mesej permintaan, baris permulaan ialah baris permintaan, untuk mesej respons, baris permulaan ialah baris status), pengepala mesej ( pilihan), Ia terdiri daripada baris kosong (baris dengan hanya CRLF) dan badan mesej (pilihan).
Sebagai penguji perisian, adalah penting untuk memahami maksud status HTTP yang dikembalikan oleh sesetengah pelayan Hanya dengan memahami kod status ini, anda boleh melihat secara menyeluruh tentang status HTTP. Kod:
Kod status respons
Kod status terdiri daripada tiga digit Digit pertama mentakrifkan kategori respons dan mempunyai lima nilai yang mungkin.
1xx: Maklumat petunjuk--menunjukkan bahawa permintaan telah diterima dan pemprosesan diteruskan.
2xx: Kejayaan--Menunjukkan bahawa permintaan telah berjaya diterima, difahami dan diterima.
3xx: Ubah hala--operasi lanjut diperlukan untuk melengkapkan permintaan.
4xx: Ralat pelanggan--Permintaan mempunyai ralat sintaks atau permintaan tidak dapat dipenuhi.
5xx: Ralat sebelah pelayan -- Pelayan gagal memenuhi permintaan yang sah.
Kod status biasa:
1xx - Gesaan maklumat
Kod status ini menunjukkan respons sementara. Pelanggan harus bersedia untuk menerima satu atau lebih 1xx respons sebelum menerima respons tetap.
· 100 - Teruskan Permintaan awal telah diterima dan pelanggan harus terus menghantar baki permintaan.
· 101 - Menukar Protokol Pelayan akan mematuhi permintaan pelanggan dan menukar kepada protokol lain.
2xx - Kejayaan
Jenis kod status ini menunjukkan bahawa pelayan berjaya menerima permintaan pelanggan.
· 200 - OK Semuanya baik-baik saja, dokumen respons untuk permintaan GET dan POST menyusul.
· 201 - Dibuat Pelayan telah mencipta dokumen dan pengepala Lokasi memberikan URLnya.
· 202 - Diterima Permintaan telah diterima, tetapi pemprosesan masih belum selesai.
· 203 - Maklumat Bukan Berautoriti Dokumen telah dikembalikan seperti biasa, tetapi beberapa pengepala respons mungkin tidak betul kerana salinan dokumen, maklumat bukan berautoriti, digunakan.
· 204 - Tiada Kandungan Tiada dokumen baharu, penyemak imbas harus terus memaparkan dokumen asal. Kod status ini berguna jika pengguna menyegarkan halaman dengan kerap dan servlet boleh menentukan bahawa dokumen pengguna cukup terkini.
· 205 - Tetapkan Semula Kandungan Tiada kandungan baharu, tetapi penyemak imbas harus menetapkan semula kandungan yang dipaparkan. Digunakan untuk memaksa pelayar mengosongkan kandungan input borang.
· 206 - Kandungan Separa Pelanggan menghantar permintaan GET (permintaan terbahagi) dengan pengepala Julat dan pelayan menyelesaikannya.
3xx - Ubah hala
Pelayar klien mesti mengambil tindakan tambahan untuk memenuhi permintaan. Sebagai contoh, penyemak imbas mungkin perlu meminta halaman lain pada pelayan, atau mengulangi permintaan melalui pelayan proksi.
· 300 - Pelbagai Pilihan Dokumen yang diminta oleh pelanggan boleh ditemui di berbilang lokasi, dan lokasi ini disenaraikan dalam dokumen yang dikembalikan. Jika pelayan ingin mencadangkan keutamaan, ia harus menunjukkannya dalam pengepala respons Lokasi.
· 301 - Dipindahkan Secara Kekal Dokumen yang diminta oleh klien berada di tempat lain, URL baharu diberikan dalam pengepala Lokasi dan penyemak imbas harus mengakses URL baharu secara automatik.
· 302 - Ditemui Serupa dengan 301, tetapi URL baharu harus dianggap sebagai pengganti sementara dan bukannya yang kekal. Ambil perhatian bahawa mesej status yang sepadan dalam HTTP 1.0 ialah "Dipindahkan Sementara". Apabila kod status ini berlaku, penyemak imbas boleh mengakses URL baharu secara automatik, jadi ia adalah kod status yang berguna. Ambil perhatian bahawa kod status ini kadangkala boleh digunakan secara bergantian dengan 301. Sesetengah pelayan mengembalikan 301, manakala yang lain mengembalikan 302. Tegasnya, kami hanya boleh menganggap bahawa penyemak imbas akan mengubah hala secara automatik hanya jika permintaan asal ialah GET. Lihat 307.
· 303 - Lihat Lain Serupa dengan 301/302, perbezaannya ialah jika permintaan asal ialah POST, dokumen sasaran ubah hala yang ditentukan oleh pengepala Lokasi harus diekstrak melalui GET.
· 304 - Tidak Diubahsuai Pelanggan mempunyai dokumen penimbal dan mengeluarkan permintaan bersyarat (biasanya menyediakan pengepala If-Modified-Since untuk menunjukkan bahawa klien hanya mahukan dokumen yang lebih baharu daripada tarikh yang ditentukan). Pelayan memberitahu pelanggan bahawa dokumen buffer asal boleh terus digunakan.
· 305 - Gunakan Proksi Dokumen yang diminta oleh klien hendaklah diambil melalui pelayan proksi yang ditentukan oleh pengepala Lokasi (baharu dalam HTTP 1.1).
· 307 - Ubah Hala Sementara adalah sama dengan 302 (Dijumpai). Banyak penyemak imbas akan mengubah hala secara salah dengan respons 302, walaupun permintaan asal ialah POST, walaupun ia sebenarnya hanya boleh mengubah hala jika respons kepada permintaan POST ialah 303. Atas sebab ini, HTTP 1.1 menambah 307 untuk membezakan dengan lebih jelas antara beberapa kod status: apabila respons 303 berlaku, penyemak imbas boleh mengikuti permintaan GET dan POST yang diubah hala, jika ia adalah respons 307, penyemak imbas hanya boleh mengikuti permintaan Pengalihan semula GET.
4xx - Ralat Pelanggan
Kod status ini menunjukkan bahawa ada sesuatu yang tidak kena dengan permintaan, menghalang pelayan daripada memproses permintaan.
· 400 - Permintaan Buruk Pelayan tidak memahami sintaks permintaan itu.
· 401 - Tanpa Kebenaran Permintaan memerlukan pengesahan. Selepas log masuk, pelayan boleh mengembalikan respons ini ke halaman. Respons akan mengandungi pengepala WWW-Authenticate, dan penyemak imbas akan memaparkan kotak dialog nama pengguna/kata laluan dengan sewajarnya, dan kemudian membuat permintaan semula selepas mengisi pengepala Kebenaran yang sesuai. IIS mentakrifkan beberapa ralat 401 berbeza yang menunjukkan punca ralat yang lebih spesifik. Kod ralat khusus ini muncul dalam penyemak imbas tetapi tidak dalam log IIS:
· 401.1 - Log masuk gagal.
· 401.2 - Konfigurasi pelayan menyebabkan kegagalan log masuk.
· 401.3 - Tidak dibenarkan kerana sekatan ACL pada sumber.
· 401.4 - Kebenaran penapis gagal.
· 401.5 - Keizinan permohonan ISAPI/CGI gagal.
· 401.7 – Akses dinafikan oleh dasar kebenaran URL pada pelayan web. Kod ralat ini khusus untuk IIS 6.0.
· 403 - Dilarang Pelayan menolak permintaan itu. Biasanya disebabkan oleh tetapan kebenaran fail atau direktori pada pelayan. Akses Dilarang: IIS mentakrifkan beberapa ralat 403 berbeza yang menunjukkan punca ralat yang lebih khusus:
· 403.1 - Akses pelaksanaan dilarang.
· 403.2 - Akses baca dilarang.
· 403.3 - Akses tulis dilarang.
· 403.4 - Memerlukan SSL.
· 403.5 - SSL 128 diperlukan.
· 403.6 - Alamat IP ditolak.
· 403.7 - Sijil pelanggan diperlukan.
· 403.8 - Akses tapak ditolak.
· 403.9 - Terlalu ramai pengguna.
· 403.10 - Konfigurasi tidak sah.
· 403.11 - Tukar kata laluan.
· 403.12 - Akses kepada jadual pemetaan ditolak.
· 403.13 - Sijil pelanggan dibatalkan.
· 403.14 - Tolak penyenaraian direktori.
· 403.15 - Kebenaran akses pelanggan melebihi kebenaran.
· 403.16 - Sijil pelanggan tidak dipercayai atau tidak sah.
· 403.17 - Sijil pelanggan telah tamat tempoh atau belum sah.
· 403.18 - URL yang diminta tidak boleh dilaksanakan dalam kumpulan aplikasi semasa. Kod ralat ini khusus untuk IIS 6.0.
· 403.19 - Tidak boleh melaksanakan CGI untuk pelanggan dalam kumpulan aplikasi ini. Kod ralat ini khusus untuk IIS 6.0.
· 403.20 - Log masuk pasport gagal. Kod ralat ini khusus untuk IIS 6.0.
· 404 - Tidak Ditemui Pelayan tidak dapat mencari halaman web yang diminta. Sebagai contoh, pelayan biasanya mengembalikan kod ini jika permintaan adalah untuk halaman yang tidak wujud pada pelayan.
· 404.0 - (Tiada) – Fail atau direktori tidak ditemui.
· 404.1 - Laman web tidak boleh diakses pada port yang diminta.
· 404.2 - Permintaan ini disekat oleh dasar penguncian sambungan Perkhidmatan Web.
· 404.3 - Permintaan ini disekat oleh dasar pemetaan MIME.
· 405 - Kaedah Tidak Dibenarkan Kaedah permintaan (GET, POST, HEAD, DELETE, PUT, TRACE, dll.) tidak berkenaan dengan sumber yang ditentukan dan kata kerja HTTP yang digunakan untuk mengakses halaman ini tidak dibenarkan (kaedahnya tidak Benarkan)
· 406 - Tidak Boleh Diterima Sumber yang ditentukan telah ditemui, tetapi jenis MIMEnya tidak serasi dengan yang ditentukan oleh klien dalam pengepala Accpet Pelayar klien tidak menerima jenis MIME halaman yang diminta.
· 407 - Pengesahan Proksi Diperlukan Kod status ini serupa dengan 401 (Tidak Dibenarkan), tetapi menyatakan bahawa peminta harus menggunakan proksi untuk kebenaran. Jika pelayan mengembalikan respons ini, pelayan juga menunjukkan proksi yang perlu digunakan oleh peminta.
· 408 - Permintaan Tamat Masa Pelanggan tidak mengeluarkan sebarang permintaan dalam masa menunggu yang dibenarkan oleh pelayan. Pelanggan boleh mengulangi permintaan yang sama kemudian.
· 409 - Konflik Pelayan menghadapi konflik semasa menyelesaikan permintaan. Pelayan mesti memasukkan maklumat tentang konflik yang berlaku dalam respons. Pelayan boleh mengembalikan kod ini apabila membalas permintaan PUT yang bercanggah dengan permintaan sebelumnya, memberikan senarai perbezaan antara kedua-dua permintaan.
· 410 - Hilang Dokumen yang diminta tidak lagi tersedia dan pelayan tidak tahu alamat yang hendak diubah hala. Perbezaan antaranya dan 404 ialah mengembalikan 407 bermakna dokumen itu telah meninggalkan lokasi yang ditentukan secara kekal, manakala 404 bermakna dokumen itu tidak tersedia atas sebab yang tidak diketahui.
· 411 - Panjang Diperlukan Pelayan tidak akan menerima permintaan yang mengandungi medan pengepala Panjang Kandungan yang tidak sah melainkan klien menghantar pengepala Panjang Kandungan.
· 412 - Prasyarat Gagal Beberapa prasyarat yang dinyatakan dalam pengepala permintaan gagal.
· 413 – Minta Entiti Terlalu Besar Dokumen sasaran adalah lebih besar daripada yang sanggup dikendalikan oleh pelayan pada masa ini. Jika pelayan berpendapat ia boleh mengendalikan permintaan itu kemudian, ia harus menyediakan pengepala Cuba Semula.
· 414 - Minta URI Terlalu Panjang URI terlalu panjang.
· 415 – Jenis media yang tidak disokong.
· 416 – Julat Diminta Tidak Memuaskan Pelayan tidak dapat memenuhi pengepala Julat yang ditentukan oleh klien dalam permintaan.
·417 – Pelaksanaan gagal.
· 423 – Ralat terkunci.
5xx - Ralat Pelayan
Kod status ini menunjukkan bahawa ralat dalaman berlaku semasa pelayan cuba memproses permintaan. Ralat ini mungkin ralat pada pelayan itu sendiri dan bukannya ralat dalam permintaan.
· 500 - Ralat Pelayan Dalaman Pelayan mengalami ralat dan tidak dapat menyelesaikan permintaan.
· 500.12 - Aplikasi sedang sibuk memulakan semula pada pelayan web.
· 500.13 - Pelayan web terlalu sibuk.
· 500.15 - Permintaan terus ke Global.asa tidak dibenarkan.
· 500.16 – Bukti kelayakan UNC yang salah. Kod ralat ini khusus untuk IIS 6.0.
· 500.18 – Kedai kebenaran URL tidak boleh dibuka. Kod ralat ini khusus untuk IIS 6.0.
· 500.100 - Ralat ASP Dalaman.
· 501 - Tidak Dilaksanakan Pelayan tidak mempunyai fungsi untuk melengkapkan permintaan. Sebagai contoh, pelayan boleh mengembalikan kod ini apabila kaedah permintaan tidak dikenali oleh pelayan.
· 502 - Gerbang Buruk Pelayan, bertindak sebagai get laluan atau proksi, menerima respons tidak sah daripada pelayan huluan.
· 502.1 - Aplikasi CGI tamat masa.
· 502.2 - Ralat aplikasi CGI.
· 503 - Perkhidmatan Tidak Tersedia Pelayan tidak tersedia pada masa ini (disebabkan oleh beban berlebihan atau masa henti untuk penyelenggaraan). Selalunya, ini hanyalah keadaan sementara.
· 504 - Gerbang Tamat Masa Pelayan, bertindak sebagai get laluan atau proksi, tidak menerima permintaan daripada pelayan huluan tepat pada masanya.
· 505 - Versi HTTP Tidak Disokong Pelayan tidak menyokong versi protokol HTTP yang digunakan dalam permintaan.
Atas ialah kandungan terperinci Apakah kod status respons HTTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!