Rumah >pembangunan bahagian belakang >Tutorial Python >Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python

Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python

WBOY
WBOYke hadapan
2022-05-31 11:39:582246semak imbas

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.

Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python

Pembelajaran yang disyorkan: tutorial video python

Protokol dan ciri HTTP

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 adalah TCP、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; semua HTTP请求 mewujudkan komunikasi daripada klien, dan pelayan tidak menerima sebarang jawapan Tiada akan dikeluarkan sebelum permintaan pelanggan; 这就是 HTTP协议 的特点之一

Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python


    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)
  • 灵活Content-Type
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.
    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,
    • 请求的时候建立连接,请求完就释放连接。它很专一。(*^▽^*)
  • 5. Ciri terakhir: tanpa kewarganegaraan Ini bermakna
; 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.
  • HTTP协议对于事务的处理没有记忆能力
  • PS: Jadi ciri HTTP ini mempunyai kebaikan dan keburukan.

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.
  • Jadi dua teknologi untuk mengekalkan sambungan HTTP wujud, iaitu
  • dan
  • .
  • cookiesession Permintaan dan respons HTTP
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.

Permintaan HTTP

ialah objek data yang dihantar ke antara muka, termasuk alamat antara muka (juga dikenali sebagai

), kaedah permintaan (dapatkan, hantar.. .) , parameter, pengepala permintaan (Pengepala), kuki, data, dll... Lihat gambar di bawah:

请求URL


Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python


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 seperti name=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 apabila get 请求方法.)


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.


Respons HTTP

Memandangkan anda sudah biasa dengan permintaan HTTP, mari kita lihat responsnya. Lihat gambar di bawah:


Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python

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.

Analisis kaedah permintaan HTTP

Untuk maklumat lanjut, sila rujuk artikel Status protokol HTTP dan komposisi mesej HTTP请求方法 .

Kaedah GET

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)


Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python


Kaedah PSOT

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.


Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python


Berikut ialah pengenalan kepada beberapa kaedah yang kurang biasa digunakan.

Kaedah PUT

  • 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 的攻击脚本。

kaedah HEAD

  • HEAD方法 hampir Sama seperti kaedah GET, kecuali kaedah HEAD hanya meminta pengepala mesej dan tiada kandungan khusus dalam respons yang dikembalikan, yang digunakan untuk mendapatkan pengepala.

Kaedah PADAM

  • Meminta pelayan memadam sumber yang ditentukan, iaitu memadam fail. (Pelayan umum akan mengawal kebenaran kaedah ini, jika tidak, ia akan menyebabkan lubang keselamatan utama.)

Kaedah PILIHAN

  • digunakan untuk membuat pertanyaan permintaan Kaedah yang disokong oleh sumber yang ditentukan oleh URI adalah untuk membuat pertanyaan 请求的URL能够支持什么方法.

Penjelasan terperinci tentang protokol http, asas penting untuk ujian automatik antara muka Python

Kaedah ini jarang digunakan dalam kerja sebenar, dan sering digunakan oleh penyerang dan jurutera ujian penembusan dalam bidang keselamatan untuk mendapatkan maklumat koleksi.


Kaedah TRACE

  • 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.

Kaedah CONNECT

  • 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)

Penjelasan terperinci tentang kod status HTTP

Kod status HTTP

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

  • 200 - Permintaan berjaya
  • 301 - Sumber (halaman web, dll.) dipindahkan secara kekal ke URL lain
  • 404 - Sumber yang diminta (halaman web, dll.) tidak wujud
  • 500 - Ralat pelayan dalaman

Pengkelasan kod status HTTP

分类 描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

Jadual kod status HTTP

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!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam