Rumah >pembangunan bahagian belakang >Tutorial Python >Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python
Artikel ini membawakan anda pengetahuan yang berkaitan tentang python, yang terutamanya memperkenalkan isu berkaitan protokol http yang merupakan asas penting untuk ujian automasi antara muka Mari kita lihat bersama-sama berguna kepada semua orang.
Pembelajaran yang disyorkan: tutorial video python
Jika anda menganggap protokol HTTP sebagai seseorang Kalau nak dibandingkan, kalau nak faham orang ini secara mendalam, pasti akan faham dulu ciri-ciri personaliti orang lain dan seterusnya. Jadi apakah ciri-ciri protokol HTTP? Secara umum, ia mempunyai ciri berikut:
- 1 Ciri pertama:
HTTP协议支持 客户/服务端 模式
; kerana protokol HTTP adalahTCP、IP 协议簇的一员,与其他成员一样
, digunakan untuk komunikasi antara klien dan pelayan Komunikasi ; cara客户/服务器模式
berfungsi ialah pelanggan menghantar permintaan kepada pelayan, dan pelayan bertindak balas kepada permintaan dan melaksanakan perkhidmatan respons; semuaHTTP请求
mewujudkan komunikasi daripada klien, dan pelayan tidak menerima sebarang jawapan Tiada akan dikeluarkan sebelum permintaan pelanggan;这就是 HTTP协议 的特点之一
2 Apabila , anda hanya perlu lulus dalam kaedah permintaan dan laluan; kaedah permintaan yang biasa digunakan ialah
- (Selain ketiga-tiga ini, terdapat kaedah lain yang kurang biasa. Rakan yang berminat boleh menyemak status dan laporan protokol HTTP (Artikel ini akan dikembangkan menjadi satu artikel); kerana kesederhanaan protokol HTTP, saiz program pelayan HTTP adalah kecil, jadi kelajuan komunikasi adalah sangat pantas.
简单快速
GET、HEAD、POST
3. Ciri ketiga:; ia adalah fleksibel kerana HTTP membenarkan penghantaran sebarang jenis objek data; . jenis, menyokong penghantaran pelbagai format kandungan. (Keserasian yang kuat)
4. Ciri keempat: tiada sambungan di sini tidak bermakna tiada sambungan, tetapi mengehadkan setiap sambungan untuk hanya memproses permintaan. Selepas pelayan memproses permintaan pelanggan dan menerima respons pelanggan, ia memutuskan sambungan. Mengguna pakai kaedah reka bentuk sedemikian boleh menjimatkan masa penghantaran.灵活
Content-Type
Peluasan: Sesetengah pelajar mungkin berpendapat bahawa halaman mempunyai banyak permintaan HTTP, dan menyambung serta memutuskan sambungan ke sana ke mari seperti ini akan menjadi sangat tidak cekap. Sebenarnya, sebab untuk melakukan ini pada hari-hari awal adalah kerana ia berasal dari Internet, jadi pelayan perlu mengendalikan ratusan ribu atau berjuta-juta lawatan halaman web dari seluruh dunia pada masa yang sama. Walau bagaimanapun, pertukaran data antara setiap pelanggan (atau penyemak imbas) dan pelayan adalah sangat terputus-putus, jadi penghantaran HTTP adalah pecah dan tepat pada masanya, kebanyakan saluran sebenarnya akan terbiar dan diduduki tanpa sebab. Oleh itu, pereka bentuk HTTP sengaja menggunakan ciri ini untuk mereka bentuk protokol untuk mengeluarkan sumber untuk melayani pelanggan lain secepat mungkin, untuk pelanggan yang sama, ia masih hanya memproses satu permintaan pada satu masa, jadi kami juga boleh lihat satu lagi kelebihan protokol HTTP,
; status bermakna jika pemprosesan berikutnya memerlukan maklumat sebelumnya, ia mesti dihantar semula, yang berkemungkinan meningkatkan jumlah data yang dihantar setiap sambungan. Sebaliknya, pelayan bertindak balas lebih cepat apabila ia tidak memerlukan maklumat sebelumnya.- 5. Ciri terakhir: tanpa kewarganegaraan Ini bermakna
请求的时候建立连接,请求完就释放连接。
它很专一。(*^▽^*)
- PS: Jadi ciri HTTP ini mempunyai kebaikan dan keburukan.
HTTP协议对于事务的处理没有记忆能力
Kelebihan: Kelebihannya adalah untuk membebaskan pelayan, dan setiap titik permintaan tidak akan menyebabkan pendudukan sambungan yang tidak perlu.
Kelemahan: Kelemahannya ialah setiap permintaan akan menghantar sejumlah besar maklumat kandungan pendua.Sekarang kita tahu bahawa protokol HTTP ialah mod permintaan dan tindak balas, mari belajar tentang permintaan dan respons HTTP. Mari kita mulakan dengan protokol HTTP permintaan.
- Jadi dua teknologi untuk mengekalkan sambungan HTTP wujud, iaitu
dan- .
cookie
session
Permintaan dan respons HTTP
请求
URL
Kandungan mesej dalam gambar di atas adalah kiriman biasa dan dapatkan mesej permintaan protokol HTTP (忽略get请求报文的请求体,那是我瞎编的
.):
1 Baris pertama ialah baris permintaan, termasuk kaedah permintaan, URI permintaan, protokol HTTP dan versi (digabungkan dengan atribut hos dalam baris kedua untuk membentuk URL permintaan yang lengkap)
2. Bahagian tengah ialah pengepala mesej, yang mengandungi beberapa atribut seperti
属性名:属性值
dalam gambar. Pelayan mendapatkan maklumat klien berdasarkan pengepala mesej.3. Bahagian bawah ialah isi mesej. Dalam
post 请求
seperti dalam rajah, nilai komponen dalam bentuk halaman dikodkan dalam format pasangan nilai kunci yang serupa sepertiname=admin&passwd=123456
untuk membentuk rentetan berformat sedemikian, yang membawa data berbilang parameter permintaan . (Bukan sahaja badan mesej boleh menghantar data, URL yang diminta juga menyokong parameter lulus apabilaget 请求方法
.)
Di sini anda dapat melihat bahawa maklumat utama adalah Ia diluluskan melalui kaedah permintaan, URL dan badan mesej. Ini juga merupakan salah satu ciri HTTP Ia mudah dan cepat Pada masa yang sama, anda juga akan mendapati bahawa pengepala mesej juga mengandungi banyak maklumat. Rujuk kepada status protokol HTTP dan komposisi mesej untuk mesej pengepala permintaan di penghujung artikel.
Memandangkan anda sudah biasa dengan permintaan HTTP, mari kita lihat responsnya. Lihat gambar di bawah:
Ia boleh dilihat dari gaya mesej respons bahawa ia sama dengan mesej permintaan Ia juga terbahagi kepada tiga bahagian : 请求行对应响应行、请求头对应响应头、请求体对应着响应体。
- 1 Baris respons dibahagikan kepada dua bahagian: versi protokol mesej dan kod status respons.
- 2. Pengepala respons juga dibahagikan kepada jenis pelayan, masa tindak balas jenis data yang sepadan dan parameter lain.
- 3. Badan tindak balas adalah apa yang kita mahukan, iaitu kandungan pulangan terakhir permintaan. Kandungan ini dihuraikan terutamanya, sebagai contoh, jika halaman diminta, respons yang dikembalikan oleh permintaan akan menjadi
HTML
yang agak besar.
Untuk maklumat lanjut, sila rujuk artikel Status protokol HTTP dan komposisi mesej HTTP请求方法
.
GET方法
digunakan untuk meminta akses kepada sumber yang telah dikenal pasti oleh URI
Sumber yang ditentukan dihuraikan oleh pelayan dan mengembalikan kandungan respons. (Lihat gambar di bawah)
POST方法
mempunyai fungsi yang serupa dengan GET方法
dan biasanya digunakan untuk menghantar entiti; tujuan utama bukan untuk mendapatkan kandungan badan tindak balas, tetapi untuk WEB服务器提供表单数据,尤其是大批量的数据
.
POST方法
sebenarnya mengatasi beberapa kelemahan GET方法
Melalui permintaan POST
, data tersebut bukan sebahagian daripada permintaan URL, tetapi dihantar kepada WEB服务器
sebagai format data standard. Ini juga mengatasi kelemahan bahawa data dalam GET方法
tidak boleh dirahsiakan dan jumlah data adalah terhad.
Berikut ialah pengenalan kepada beberapa kaedah yang kurang biasa digunakan.
- Data yang dipindahkan daripada klien ke pelayan menggantikan kandungan dokumen yang ditentukan.
- Perbezaan terbesar antara kaedah PUT dan kaedah POST ialah: PUT adalah idempoten, manakala POST bukan idempoten. Oleh itu, lebih kerap daripada tidak kita akan
PUT方法用作传输资源。
开启 PUT方法 需要控制权限,否则会造成一定的安全隐患,比如向服务器传输带有恶意 payload 的攻击脚本。
HEAD方法
hampir Sama seperti kaedahGET
, kecuali kaedah HEAD hanya meminta pengepala mesej dan tiada kandungan khusus dalam respons yang dikembalikan, yang digunakan untuk mendapatkan pengepala.
- Meminta pelayan memadam sumber yang ditentukan, iaitu memadam fail. (Pelayan umum akan mengawal kebenaran kaedah ini, jika tidak, ia akan menyebabkan lubang keselamatan utama.)
- digunakan untuk membuat pertanyaan permintaan Kaedah yang disokong oleh sumber yang ditentukan oleh URI adalah untuk membuat pertanyaan
请求的URL能够支持什么方法
.
Kaedah ini jarang digunakan dalam kerja sebenar, dan sering digunakan oleh penyerang dan jurutera ujian penembusan dalam bidang keselamatan untuk mendapatkan maklumat koleksi.
- digunakan untuk menggemakan permintaan yang diterima oleh pelayan, terutamanya untuk ujian atau diagnosis. (Tidak biasa digunakan)
- sering digunakan dalam serangan merentas tapak dalam medan keselamatan.
- membuka saluran komunikasi dua hala dengan sumber yang diminta oleh pelanggan, jadi ia digunakan lebih kerap untuk membina terowong . (Ini ialah kaedah yang digunakan apabila menggunakan proksi)
Apabila kami menggunakan penyemak imbas untuk menghantar mesej ke WEB Apabila pelayan di mana halaman web terletak menghantar permintaan, apabila pelayan menerima permintaan kami dan bertindak balas. Penyemak imbas akan menerima dan memaparkan halaman web, dan pelayan di mana halaman web terletak akan mengembalikan pengepala pelayan yang mengandungi kod status HTTP sebagai tindak balas kepada permintaan kami dalam penyemak imbas.
Nama bahasa Inggeris bagi kod status HTTP ialah Kod Status HTTP.
Berikut ialah kod status HTTP biasa
分类 | 描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
Kod status |
Nama Inggeris | Penerangan bahasa Cina |
---|---|---|
100 | Teruskan | Teruskan. Pelanggan harus meneruskan permintaannya |
101 | Protokol Penukaran | Menukar protokol. Pelayan menukar protokol berdasarkan permintaan pelanggan. Anda hanya boleh bertukar kepada protokol yang lebih maju, contohnya, bertukar kepada versi baharu protokol HTTP |
200 | OK | Permintaan itu berjaya. Biasanya digunakan untuk permintaan GET dan POST |
201 | Dibuat | telah dibuat. Berjaya meminta dan mencipta sumber baharu |
202 | Diterima | Diterima. Permintaan telah diterima tetapi belum diproses |
203 | Maklumat Bukan Berkuasa | Maklumat tidak dibenarkan. Permintaan itu berjaya. Tetapi maklumat meta yang dikembalikan bukan pada pelayan asal, tetapi salinan |
204 | Tiada Kandungan | Tiada kandungan. Pelayan berjaya diproses, tetapi tiada kandungan dikembalikan. Memastikan penyemak imbas terus memaparkan dokumen semasa tanpa mengemas kini halaman web |
205 | Tetapkan Semula Kandungan | Tetapkan semula kandungan. Pemprosesan pelayan berjaya dan terminal pengguna (cth. penyemak imbas) harus menetapkan semula paparan dokumen. Anda boleh menggunakan kod pulangan ini untuk mengosongkan medan borang penyemak imbas |
206 | Kandungan Separa | Kandungan Separa. Pelayan berjaya memproses sebahagian daripada permintaan GET |
300 | Aneka Pilihan | Aneka Pilihan. Sumber yang diminta boleh termasuk berbilang lokasi, dan dengan itu senarai ciri dan alamat sumber boleh dikembalikan untuk pemilihan terminal pengguna (cth. pelayar) |
301 | Dipindah Secara Kekal | Dipindahkan secara kekal. Sumber yang diminta telah dialihkan secara kekal ke URI baharu, maklumat pemulangan akan termasuk URI baharu dan penyemak imbas akan secara automatik dihalakan ke URI baharu. Sebarang permintaan baharu pada masa hadapan hendaklah menggunakan URI baharu dan bukannya |
302 | Ditemui | Dialihkan buat sementara waktu. Sama seperti 301. Tetapi sumber itu hanya dipindahkan buat sementara waktu. Pelanggan harus terus menggunakan URI asal |
303 | Lihat Lain | untuk melihat alamat lain. Sama seperti 301. Gunakan permintaan GET dan POST untuk melihat |
304 | Tidak Diubah | Tidak diubah suai. Sumber yang diminta belum diubah suai Apabila pelayan mengembalikan kod status ini, tiada sumber akan dikembalikan. Pelanggan biasanya cache mengakses sumber dengan menyediakan pengepala yang menunjukkan bahawa pelanggan ingin memulangkan hanya sumber yang diubah suai selepas tarikh tertentu |
305 | Gunakan Proksi | Gunakan proksi. Sumber yang diminta mesti diakses melalui proksi |
306 | Tidak digunakan | Kod status HTTP usang |
307 | Ubah Hala Sementara | Ubah hala sementara. Sama seperti 302. Gunakan GET permintaan ubah hala |
401 | Tidak dibenarkan | Permintaan memerlukan pengesahan pengguna |
402 | Pembayaran Diperlukan | Ditempah untuk kegunaan masa hadapan |
403 | Dilarang | Pelayan memahami permintaan daripada yang meminta klien , tetapi enggan melaksanakan permintaan ini |
404 | Tidak Ditemui | Pelayan tidak dapat mencari sumber (halaman web) berdasarkan permintaan pelanggan. Dengan kod ini, pereka laman web boleh Tetapkan halaman yang diperibadikan untuk "Sumber yang anda minta tidak ditemui" |
405 | Kaedah Tidak Dibenarkan | Kaedah dalam permintaan pelanggan adalah dilarang |
406 | Tidak Boleh Diterima | Pelayan tidak boleh melengkapkan permintaan berdasarkan ciri kandungan yang diminta oleh pelanggan |
407 | Pengesahan Proksi Diperlukan | Permintaan memerlukan pengesahan proksi, serupa dengan 401, tetapi peminta harus menggunakan proksi untuk kebenaran |
408 | Tamat Masa Permintaan | Pelayan menunggu terlalu lama untuk permintaan yang dihantar oleh pelanggan dan tamat masa |
409 | Konflik | Pelayan boleh mengembalikan kod ini apabila menyelesaikan permintaan PUT pelanggan Konflik berlaku apabila pelayan memproses permintaan |
410 | . Hilang | diminta oleh pelanggan Sumber tidak lagi wujud. 410 berbeza daripada 404. Jika sumber telah dipadamkan secara kekal, kod 410 boleh digunakan Pereka tapak web boleh menentukan lokasi baharu sumber melalui kod 301 |
411 | Panjang Diperlukan | Pelayan tidak boleh memproses maklumat permintaan tanpa Panjang Kandungan dihantar oleh pelanggan |
412 | Prasyarat Gagal | Ralat prasyarat untuk maklumat permintaan pelanggan |
413 | Permintaan Entiti Terlalu Besar | Pelayan tidak dapat mengendalikannya kerana diminta entiti terlalu besar , jadi permintaan ditolak. Untuk mengelakkan permintaan berterusan daripada klien, pelayan boleh menutup sambungan. Jika pelayan tidak dapat memprosesnya buat sementara waktu, ia akan mengandungi mesej balas Cuba Semula Selepas |
414 | URI Permintaan Terlalu Besar | URI Diminta Juga panjang (URI biasanya URL) dan pelayan tidak dapat mengendalikannya |
415 | Taip Media Tidak Disokong | Pelayan tidak boleh mengendalikan format media yang dilampirkan kepada permintaan |
416 | Julat yang diminta tidak memuaskan | Julat yang diminta oleh pelanggan adalah tidak sah |
417 | Jangkaan Gagal | Pelayan tidak dapat memenuhi maklumat pengepala Expect request |
500 | Ralat Pelayan Dalaman | Ralat dalaman pelayan, Tidak dapat melengkapkan permintaan |
501 | Tidak Dilaksanakan | Pelayan tidak menyokong ciri yang diminta dan permintaan tidak dapat diselesaikan |
502 | Gerbang Buruk | Pelayan yang bertindak sebagai gerbang atau proksi menerima permintaan yang tidak sah daripada pelayan jauh |
503 | Perkhidmatan Tidak Tersedia | Disebabkan beban berlebihan atau penyelenggaraan sistem, pelayan tidak dapat memproses permintaan pelanggan buat sementara waktu. Tempoh kelewatan boleh disertakan dalam pengepala Cuba-Selepas pelayan |
504 | Tamat Masa Gerbang | bertindak sebagai gerbang atau Pelayan proksi gagal mendapatkan permintaan daripada pelayan jauh dalam masa |
505 | Versi HTTP tidak disokong | Pelayan tidak tidak menyokong versi protokol HTTP yang diminta , tidak dapat menyelesaikan pemprosesan |
Pembelajaran yang disyorkan: tutorial video python
Atas ialah kandungan terperinci Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!