Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah prinsip protokol HTTP dalam perangkak web Python?

Apakah prinsip protokol HTTP dalam perangkak web Python?

WBOY
WBOYke hadapan
2023-04-20 22:01:231828semak imbas

Asas HTTP

Dalam artikel ini, kita akan mempelajari lebih lanjut tentang prinsip asas HTTP dan memahami perkara yang berlaku antara menaip URL dalam penyemak imbas dan mendapatkan kandungan halaman web. Memahami kandungan ini akan membantu kami memahami lebih lanjut prinsip asas perangkak.

URI dan URL

Di sini kita mula-mula belajar tentang URI dan URL Nama penuh URI ialah Uniform Resource Identifier, iaitu pengecam sumber bersatu Nama penuh URL ialah Universal Resource Locator , yang merupakan sumber bersatu.

URL ialah subset URI, yang bermaksud setiap URL ialah URI, tetapi bukan setiap URI ialah URL. Jadi, apakah jenis URI yang bukan URL juga termasuk subkelas yang dipanggil URN, yang bermaksud Nama Sumber Sejagat. URN hanya menamakan sumber tanpa menyatakan cara untuk mencari sumber Contohnya, urn:isbn:0451450523 menentukan ISBN buku, yang boleh mengenal pasti buku secara unik, tetapi tidak menyatakan tempat untuk mencari buku. Hubungan antara URL, URN dan URI.

Tetapi dalam Internet semasa, URN jarang digunakan, jadi hampir semua URI adalah URL umum boleh dipanggil URL atau URI secara peribadi saya menggunakannya sebagai URL.

Hypertext

Seterusnya, mari kita pelajari tentang satu lagi konsep - hiperteks, nama Inggerisnya hiperteks, tapak web yang kita lihat dalam penyemak imbas
Halaman dihuraikan oleh hiperteks dan sumbernya kod ialah satu siri kod HTML, yang mengandungi satu siri - tag, seperti img untuk memaparkan gambar, p untuk menentukan perenggan, dsb. Selepas pelayar menghuraikan teg ini, ia membentuk halaman web yang biasa kita lihat, dan kod sumber HTML halaman web boleh dipanggil hiperteks.

Sebagai contoh, kami membuka mana-mana halaman dalam penyemak imbas Chrome, seperti halaman utama Taobao, klik kanan di mana-mana dan pilih item "Semak"

(atau terus tekan kekunci pintasan F12). alat pembangun penyemak imbas, dan kemudian anda boleh melihat kod sumber halaman web
semasa dalam tab Elemen Kod sumber ini semuanya hiperteks, seperti yang ditunjukkan dalam rajah.

Apakah prinsip protokol HTTP dalam perangkak web Python?

HTTP dan HTTPS

Pada halaman utama Baidu, URL akan mempunyai http atau https pada permulaan, iaitu jenis protokol yang diperlukan untuk mengakses sumber. Kadangkala, kita juga akan melihat URL bermula dengan ftp, sftp dan smb, yang kesemuanya merupakan jenis protokol. Dalam perangkak, halaman yang kami rangkak biasanya menggunakan protokol http atau https Di sini kami mula-mula memahami maksud kedua-dua protokol ini.

Nama penuh HTTP ialah Hyper Text Transfer Protocol, dan nama Cinanya ialah Hyper Text Transfer Protocol. Protokol HTTP ialah protokol penghantaran yang digunakan untuk menghantar data hiperteks dari rangkaian ke penyemak imbas tempatan Ia boleh memastikan penghantaran dokumen hiperteks yang cekap dan tepat. HTTP ialah spesifikasi yang dirumus bersama oleh World Wide Web Consortium dan Internet Engineering Task Force (IETF) Pada masa ini, versi HTTP1.1 digunakan secara meluas.

Nama penuh HTTPS ialah Hyper Text Transfer Protocol over Secure Socket Layer Ia adalah HTTP

saluran yang bertujuan untuk keselamatan, ia adalah versi HTTP yang selamat, iaitu menambah SSL lapisan di bawah HTTP, dirujuk sebagai HTTPS.

Asas keselamatan HTTPS ialah SSL, jadi kandungan yang dihantar melaluinya disulitkan oleh SSL Fungsi utamanya boleh dibahagikan

kepada dua jenis.

  • Tubuhkan saluran keselamatan maklumat untuk memastikan keselamatan penghantaran data.

  • Sahkan ketulenan tapak web Untuk mana-mana tapak web yang menggunakan HTTPS, anda boleh klik pada tanda kunci dalam bar alamat penyemak imbas untuk melihat maklumat sebenar selepas tapak web telah disahkan. Anda juga boleh lulus CA Semak meterai keselamatan yang dikeluarkan oleh agensi.

Kini semakin banyak tapak web dan apl dibangunkan ke arah HTTPS, seperti:

  • Apple mewajibkan semua ioS All apl mesti menggunakan penyulitan HTTPS sebelum 1 Januari 2017, jika tidak, apl itu tidak akan disenaraikan di gedung aplikasi.

  • Bermula dari Chrome 56, dilancarkan pada Januari 2017, Google telah memaparkan amaran risiko untuk pautan URL yang tidak disulitkan HTTPS, iaitu, mengingatkan pengguna dalam kedudukan yang menonjol dalam bar alamat bahawa "Halaman web ini tidak dibenarkan" .

  • Dokumen keperluan rasmi Tencent WeChat Mini Program memerlukan latar belakang menggunakan permintaan HTTPS untuk komunikasi rangkaian dan nama domain yang tidak memenuhi syarat tidak boleh diminta.

Proses permintaan HTTP

Kami memasukkan URL dalam penyemak imbas dan tekan Enter untuk memerhatikannya dalam kandungan Halaman penyemak imbas. Sebenarnya, proses ini ialah penyemak imbas menghantar permintaan kepada pelayan di mana tapak web itu terletak Selepas menerima permintaan, pelayan laman web memproses dan menghuraikan permintaan itu, kemudian mengembalikan respons yang sepadan, dan kemudian menghantarnya kembali ke penyemak imbas. Respons mengandungi kod sumber halaman dan kandungan lain, dan penyemak imbas menghuraikannya dan memaparkan halaman web.

Pelanggan di sini mewakili PC atau penyemak imbas mudah alih kami sendiri, dan pelayan ialah pelayan di mana tapak web yang ingin kami lawati berada.

Permintaan

Permintaan dihantar daripada klien ke pelayan dan boleh dibahagikan kepada 4 bahagian: kaedah permintaan (Kaedah Permintaan), URL yang diminta
(URL Permintaan) , Pengepala Permintaan, Badan Permintaan.


Kaedah permintaan

    Terdapat dua kaedah permintaan biasa: GET dan POST.

    Masukkan URL terus ke dalam penyemak imbas dan tekan Enter Ini akan memulakan permintaan GET dan parameter permintaan akan dimasukkan terus dalam URL. Sebagai contoh, mencari Python dalam Baidu ialah permintaan GET dengan pautan https://www baidu com/. Permintaan POST kebanyakannya dimulakan apabila borang diserahkan. Sebagai contoh, untuk borang log masuk, selepas memasukkan nama pengguna dan kata laluan, mengklik butang "Log Masuk" biasanya akan memulakan permintaan POST, dan data biasanya dihantar dalam bentuk borang dan tidak akan ditunjukkan dalam URL.

    Perbezaan antara kaedah permintaan GET dan POST adalah seperti berikut:

    • Parameter dalam permintaan GET disertakan dalam URL, dan data boleh dilihat dalam URL, manakala POST URL yang diminta tidak akan mengandungi data ini Data dihantar melalui borang dan akan disertakan dalam badan permintaan.

    • Data yang diserahkan oleh permintaan GET adalah paling banyak hanya 1024 bait, manakala kaedah POST tiada had.

    Secara umumnya, apabila log masuk, anda perlu menyerahkan nama pengguna dan kata laluan, yang mengandungi maklumat sensitif Jika anda menggunakan GET untuk meminta, kata laluan akan didedahkan dalam URL, menyebabkan kebocoran kata laluan, jadi Sebaiknya hantar melalui POST di sini. Semasa memuat naik fail, kaedah POST juga akan digunakan kerana kandungan fail agak besar.

    Kebanyakan permintaan yang biasa kami hadapi adalah permintaan GET atau POST Terdapat juga beberapa kaedah permintaan, seperti GET, HEAD,
    POST, PUT, DELETE, OPTIONS, CONNECT, TRACE, dll.

    • URL yang diminta

    请求的网址,即统一资源定 位符URL,它可以唯一确定 我们想请求的资源。
    • Tajuk permintaan

    请求头,用来说明服务器要使用的附加信息,比较重要的信息有Cookie . Referer. User-Agent等。
    • Permintaan badan

    请求体一般承载的内容是 POST请求中的表单数据,而对于GET请求,请求体则为空。
    Respons

    Respons, dikembalikan oleh pelayan kepada pelanggan, boleh dibahagikan kepada tiga Bahagian: Kod Status Respons, Pengepala Respons dan Badan Respons.

    • Kod status respons

    响应状态码表示服务器的响应状态,如200代表服务器正常响应,404代表页面未找到,500代表
    服务器内部发生错误。在爬虫中,我们可以根据状态码来判断服务器响应状态,如状态码为200,则
    证明成功返回数据,再进行进一步的处理, 否则直接忽略。
    • Pengepala respons

    响应头包含了服务器对请求的应答信息,如Content-Type、Server、 Set-Cookie 等。
    • Badan tindak balas

    最重要的当属响应体的内容了。响应的正文数据都在响应体中,比如请求网页时,它的响应体
    就是网页的HTML代码;请求- -张图片时 ,它的响应体就是图片的二进制数据。我们做爬虫请
    求网页后,要解析的内容就是响应体.

    Atas ialah kandungan terperinci Apakah prinsip protokol HTTP dalam perangkak web Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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