Rumah pembangunan bahagian belakang tutorial php Penemuduga bertanya: Berapa banyak permintaan HTTP yang boleh dihantar oleh sambungan TCP?

Penemuduga bertanya: Berapa banyak permintaan HTTP yang boleh dihantar oleh sambungan TCP?

Feb 22, 2023 pm 12:00 PM
http tcp

Pernah ada soalan temu duga klasik: Apakah yang berlaku dalam proses daripada URL yang dimasukkan dalam penyemak imbas ke halaman yang dipaparkan?

Saya percaya bahawa kebanyakan pelajar yang telah menyediakan boleh menjawabnya, tetapi jika anda terus bertanya: Jika HTML yang diterima mengandungi berpuluh-puluh tag imej, dalam cara bagaimana, dalam susunan bagaimana, imej ini dicipta ? Berapa banyak sambungan telah dimuat turun dan apakah protokol yang digunakan?

Penemuduga bertanya: Berapa banyak permintaan HTTP yang boleh dihantar oleh sambungan TCP?

Untuk memahami masalah ini, kita perlu menyelesaikan lima masalah berikut terlebih dahulu:

1 Selepas pelayar moden mewujudkan sambungan TCP dengan pelayan Will ia memutuskan sambungan selepas permintaan HTTP selesai? Dalam keadaan apa ia akan diputuskan?

2. Berapa banyak permintaan HTTP yang boleh sepadan dengan satu sambungan TCP?

3. Bolehkah permintaan HTTP dihantar bersama dalam sambungan TCP (contohnya, tiga permintaan dihantar bersama dan tiga respons diterima bersama)?

4. Mengapakah kadangkala memuat semula halaman tidak memerlukan sambungan SSL diwujudkan semula?

5. Adakah penyemak imbas mempunyai sebarang had pada bilangan sambungan TCP yang diwujudkan oleh Hos yang sama?

Soalan pertama

Adakah penyemak imbas moden akan memutuskan sambungan selepas permintaan HTTP selesai selepas mewujudkan sambungan TCP dengan pelayan ? Dalam keadaan apa ia akan diputuskan?

Dalam HTTP/1.0, pelayan akan memutuskan sambungan TCP selepas menghantar respons HTTP. Walau bagaimanapun, setiap permintaan akan mewujudkan semula dan memutuskan sambungan TCP, yang terlalu mahal. Jadi, walaupun ia tidak ditetapkan dalam piawaian, sesetengah pelayan menyokong sambungan: pengepala kekal hidup. Ini bermakna selepas melengkapkan permintaan HTTP ini, jangan putuskan sambungan TCP yang digunakan oleh permintaan HTTP. Kelebihan ini ialah sambungan boleh digunakan semula, dan tidak perlu mewujudkan semula sambungan TCP apabila menghantar permintaan HTTP nanti. Jika sambungan dikekalkan, overhed SSL juga boleh dielakkan dua lawatan saya ke www.github dalam tempoh yang singkat Statistik masa .com:

Penemuduga bertanya: Berapa banyak permintaan HTTP yang boleh dihantar oleh sambungan TCP?

Lawatan pertama, terdapat sambungan permulaan dan overhed SSL

<.>

Penemuduga bertanya: Berapa banyak permintaan HTTP yang boleh dihantar oleh sambungan TCP?

Sambungan permulaan dan overhed SSL Overhed hilang, menunjukkan bahawa sambungan TCP yang sama digunakan

Sambungan berterusan: Memandangkan terdapat begitu banyak faedah mengekalkan sambungan TCP, HTTP /1.1 menulis pengepala Sambungan ke dalam standard dan membolehkan sambungan berterusan secara lalai melainkan ditulis dalam permintaan Jika Sambungan: tutup ditentukan, sambungan TCP antara penyemak imbas dan pelayan akan dikekalkan untuk tempoh masa dan tidak akan diputuskan sambungan selepas permintaan telah selesai.

Jadi jawapan kepada soalan pertama ialah: secara lalai sambungan TCP tidak diputuskan, hanya mengisytiharkan Sambungan: tutup dalam pengepala permintaan akan menutup sambungan selepas permintaan selesai.

Soalan kedua

Berapa banyak permintaan HTTP yang boleh sepadan dengan sambungan TCP?

Selepas memahami soalan pertama, soalan ini sebenarnya sudah mempunyai jawapan Jika sambungan dikekalkan, sambungan TCP boleh menghantar berbilang permintaan HTTP.

Soalan ketiga

Bolehkah permintaan HTTP dihantar bersama dalam sambungan TCP (contohnya, tiga permintaan dihantar bersama dan tiga respons diterima bersama)?

Terdapat masalah dengan HTTP/1.1 Satu sambungan TCP hanya boleh mengendalikan satu permintaan pada masa yang sama, yang bermaksud: kitaran hayat dua permintaan tidak boleh bertindih mana-mana dua permintaan HTTP adalah Tidak boleh bertindih dalam sambungan TCP yang sama.

Walaupun spesifikasi HTTP/1.1 menentukan Pipelining untuk cuba menyelesaikan masalah ini, ciri ini dimatikan secara lalai dalam penyemak imbas.

Mari kita lihat dahulu apa itu Pipelining yang ditetapkan oleh RFC 2616:

A client that supports persistent connections MAY "pipeline" its requests (i.e., send multiple requests without waiting for each response). A server MUST send its responses to those requests in the same order that the requests were received. 一个支持持久连接的客户端可以在一个连接中发送多个请求(不需要等待任意请求的响应)。收到请求的服务器必须按照请求收到的顺序发送响应。
Salin selepas log masuk
Mengenai mengapa standard ditetapkan dengan cara ini, kita boleh membuat spekulasi secara kasar atas satu sebab: kerana HTTP/. 1.1 ialah protokol teks , dan kandungan yang dikembalikan tidak dapat membezakan permintaan mana yang sepadan, jadi pesanan mesti dikekalkan secara konsisten. Sebagai contoh, jika anda menghantar dua permintaan kepada pelayan, GET/query?q=A dan GET/query?q=B, dan pelayan mengembalikan dua hasil, penyemak imbas tidak mempunyai cara untuk menentukan permintaan yang sepadan dengan respons berdasarkan hasil tindak balas.

Pelipisan Paip Idea ini kelihatan bagus, tetapi terdapat banyak masalah dalam amalan:

  • Sesetengah pelayan proksi tidak dapat mengendalikan Paip HTTP dengan betul.

  • Pelaksanaan saluran paip yang betul adalah rumit.

  • Sekatan Ketua Talian: Selepas mewujudkan sambungan TCP, anggap bahawa klien menghantar beberapa permintaan kepada pelayan secara berterusan semasa sambungan ini. Mengikut piawaian, pelayan harus mengembalikan hasil dalam urutan permintaan diterima Dengan mengandaikan bahawa pelayan menghabiskan banyak masa memproses permintaan pertama, maka semua permintaan berikutnya perlu menunggu permintaan pertama selesai sebelum menjawab. .

Jadi penyemak imbas moden tidak mendayakan HTTP Pipelining secara lalai.

Walau bagaimanapun, HTTP2 menyediakan ciri Multiplexing, yang boleh melengkapkan berbilang permintaan HTTP secara serentak dalam sambungan TCP. Bagaimana tepatnya pemultipleksan dilaksanakan adalah soalan lain. Kita boleh melihat kesan penggunaan HTTP2.

Penemuduga bertanya: Berapa banyak permintaan HTTP yang boleh dihantar oleh sambungan TCP?

Hijau ialah masa menunggu dari memulakan permintaan hingga mengembalikan permintaan, dan biru ialah masa muat turun respons Anda dapat melihat bahawa semuanya telah selesai selari dalam Sambungan yang sama

Jadi soalan ini juga mempunyai jawapan: dalam HTTP/1.1, terdapat teknologi Pipelining yang boleh melengkapkan penghantaran berbilang permintaan pada masa yang sama, tetapi memandangkan penyemak imbas ditutup secara lalai, ia boleh dianggap tidak boleh dilaksanakan. Disebabkan oleh ciri Multiplexing dalam HTTP2, berbilang permintaan HTTP boleh diproses secara selari pada sambungan TCP yang sama.

Jadi dalam era HTTP/1.1, bagaimanakah penyemak imbas meningkatkan kecekapan pemuatan halaman? Terdapat dua perkara utama:

  • Kekalkan sambungan TCP yang telah diwujudkan dengan pelayan dan proses berbilang permintaan secara berurutan pada sambungan yang sama.

  • Mewujudkan berbilang sambungan TCP dengan pelayan.

Soalan keempat

Mengapa kadangkala memuat semula halaman tidak memerlukan sambungan SSL diwujudkan semula?

Jawapan sudah tersedia dalam perbincangan soalan pertama sambungan TCP kadangkala diselenggara oleh penyemak imbas dan pelayan untuk satu tempoh masa. TCP tidak perlu diwujudkan semula, dan SSL secara semula jadi akan menggunakan yang sebelumnya.

Soalan kelima

Adakah terdapat sebarang had pada bilangan sambungan TCP yang penyemak imbas boleh wujudkan kepada Hos yang sama?

Andaikan kita masih dalam era HTTP/1.1, dan tiada pemultipleksan pada masa itu Apakah yang perlu dilakukan oleh penyemak imbas apabila ia mendapat halaman web dengan berpuluh-puluh imej? Sudah pasti tidak mungkin untuk hanya membuka sambungan TCP untuk muat turun berurutan, jika tidak, pengguna pasti perlu menunggu Walau bagaimanapun, jika sambungan TCP dibuka untuk setiap gambar untuk menghantar permintaan HTTP, komputer atau pelayan mungkin tidak dapat menanggungnya Jika terdapat 1,000 gambar, ia tidak boleh dibuka 1000 sambungan TCP, walaupun komputer anda bersetuju dengan NAT, ia mungkin tidak bersetuju.

Jadi jawapannya: ya. Chrome membenarkan sehingga enam sambungan TCP ke Hos yang sama. Terdapat beberapa perbezaan antara pelayar yang berbeza.

developers.google.com/web/tools/ch...

Jadi kembali kepada soalan asal, jika HTML yang diterima mengandungi berpuluh-puluh imej Tag, dalam cara bagaimana, dalam susunan apa, berapa banyak sambungan telah diwujudkan, dan apakah protokol yang digunakan untuk memuat turun gambar-gambar ini?

Jika imej adalah semua sambungan HTTPS dan di bawah nama domain yang sama, penyemak imbas akan berbincang dengan pelayan selepas jabat tangan SSL sama ada HTTP2 boleh digunakan, fungsi Multiplexing akan digunakan untuk menjalankan pemultipleksan sambungan ini. Walau bagaimanapun, tidak semestinya semua sumber yang disenaraikan pada nama domain ini akan diperoleh menggunakan sambungan TCP, tetapi pastinya pemultipleksan mungkin akan digunakan.

Bagaimana jika anda mendapati anda tidak boleh menggunakan HTTP2? Atau HTTPS tidak boleh digunakan (sebenarnya, HTTP2 dilaksanakan pada HTTPS, jadi hanya HTTP/1.1 boleh digunakan). Penyemak imbas akan mewujudkan berbilang sambungan TCP pada HOST Had maksimum pada bilangan sambungan bergantung pada tetapan penyemak imbas Sambungan ini akan digunakan oleh penyemak imbas untuk menghantar permintaan baharu jika semua sambungan menghantar permintaan Woolen cloth? Kemudian permintaan lain perlu menunggu.                                                                                                 

Atas ialah kandungan terperinci Penemuduga bertanya: Berapa banyak permintaan HTTP yang boleh dihantar oleh sambungan TCP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah maksud kod status http 520? Apakah maksud kod status http 520? Oct 13, 2023 pm 03:11 PM

Kod status HTTP 520 bermakna pelayan mengalami ralat yang tidak diketahui semasa memproses permintaan dan tidak dapat memberikan maklumat yang lebih khusus. Digunakan untuk menunjukkan bahawa ralat tidak diketahui berlaku semasa pelayan memproses permintaan, yang mungkin disebabkan oleh masalah konfigurasi pelayan, masalah rangkaian atau sebab lain yang tidak diketahui. Ini biasanya disebabkan oleh isu konfigurasi pelayan, isu rangkaian, kelebihan beban pelayan atau ralat pengekodan. Jika anda menghadapi ralat kod status 520, sebaiknya hubungi pentadbir tapak web atau pasukan sokongan teknikal untuk mendapatkan maklumat dan bantuan lanjut.

Bagaimana untuk menetapkan semula protokol tcp/ip dalam win10? Bagaimana untuk menetapkan semula timbunan protokol tcp/ip dalam windows 10 Bagaimana untuk menetapkan semula protokol tcp/ip dalam win10? Bagaimana untuk menetapkan semula timbunan protokol tcp/ip dalam windows 10 Mar 16, 2024 am 11:07 AM

Bagaimana untuk menetapkan semula protokol tcp/ip dalam win10? Sebenarnya, kaedahnya sangat mudah Pengguna boleh terus memasukkan command prompt, dan kemudian tekan kombinasi kekunci ctrl+shift+enter untuk melaksanakan operasi, atau terus laksanakan arahan set semula untuk menyediakan pengguna pengenalan terperinci tentang cara menetapkan semula susunan protokol TCP/IP dalam Windows 10. Kaedah 1 untuk menetapkan semula timbunan protokol tcp/ip dalam windows 10. Kebenaran pentadbir 1. Kami menggunakan kekunci pintasan win+R untuk terus membuka tetingkap jalankan, kemudian masukkan cmd dan tahan ctrl+shift+enter kombinasi kekunci. 2. Atau kita boleh terus mencari command prompt dalam menu mula dan klik kanan

Apakah kod status http 403? Apakah kod status http 403? Oct 07, 2023 pm 02:04 PM

Kod status HTTP 403 bermakna pelayan menolak permintaan pelanggan. Penyelesaian kepada kod status http 403 ialah: 1. Semak kelayakan pengesahan Jika pelayan memerlukan pengesahan, pastikan kelayakan yang betul disediakan 2. Semak sekatan alamat IP, pastikan bahawa alamat IP klien adalah disenarai putih atau tidak disenaraihitamkan 3. Semak tetapan kebenaran fail Jika kod status 403 berkaitan dengan tetapan kebenaran fail atau direktori, pastikan klien mempunyai kebenaran yang mencukupi untuk mengakses fail atau direktori ini. dll.

Fahami senario aplikasi biasa pengalihan halaman web dan fahami kod status HTTP 301 Fahami senario aplikasi biasa pengalihan halaman web dan fahami kod status HTTP 301 Feb 18, 2024 pm 08:41 PM

Kuasai maksud kod status HTTP 301: Senario aplikasi biasa pengalihan halaman web Dengan perkembangan pesat Internet, keperluan orang ramai untuk interaksi halaman web menjadi lebih tinggi dan lebih tinggi. Dalam bidang reka bentuk web, pengalihan halaman web adalah teknologi biasa dan penting, dilaksanakan melalui kod status HTTP 301. Artikel ini akan meneroka maksud kod status HTTP 301 dan senario aplikasi biasa dalam pengalihan halaman web. Kod status HTTP301 merujuk kepada ubah hala kekal (PermanentRedirect). Apabila pelayan menerima pelanggan

Cara menggunakan Pengurus Proksi Nginx untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Cara menggunakan Pengurus Proksi Nginx untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Sep 26, 2023 am 11:19 AM

Cara menggunakan NginxProxyManager untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Dengan perkembangan Internet, semakin banyak laman web mula menggunakan protokol HTTPS untuk menyulitkan penghantaran data untuk meningkatkan keselamatan data dan perlindungan privasi pengguna. Memandangkan protokol HTTPS memerlukan sokongan sijil SSL, sokongan teknikal tertentu diperlukan semasa menggunakan protokol HTTPS. Nginx ialah pelayan HTTP yang berkuasa dan biasa digunakan dan pelayan proksi terbalik, dan NginxProxy

Hantar permintaan POST dengan data borang menggunakan fungsi http.PostForm Hantar permintaan POST dengan data borang menggunakan fungsi http.PostForm Jul 25, 2023 pm 10:51 PM

Gunakan fungsi http.PostForm untuk menghantar permintaan POST dengan data borang Dalam pakej http bahasa Go, anda boleh menggunakan fungsi http.PostForm untuk menghantar permintaan POST dengan data borang. Prototaip fungsi http.PostForm adalah seperti berikut: funcPostForm(urlstring,dataurl.Values)(resp*http.Response,errerror)di mana, u

Aplikasi Pantas: Analisis Kes Pembangunan Praktikal PHP Asynchronous HTTP Muat Turun Berbilang Fail Aplikasi Pantas: Analisis Kes Pembangunan Praktikal PHP Asynchronous HTTP Muat Turun Berbilang Fail Sep 12, 2023 pm 01:15 PM

Aplikasi Pantas: Analisis Kes Pembangunan Praktikal PHP Asynchronous HTTP Muat Turun Berbilang Fail Dengan pembangunan Internet, fungsi muat turun fail telah menjadi salah satu keperluan asas bagi banyak laman web dan aplikasi. Untuk senario di mana berbilang fail perlu dimuat turun pada masa yang sama, kaedah muat turun segerak tradisional selalunya tidak cekap dan memakan masa. Atas sebab ini, menggunakan PHP untuk memuat turun berbilang fail secara tidak segerak melalui HTTP telah menjadi penyelesaian yang semakin biasa. Artikel ini akan menganalisis secara terperinci cara menggunakan HTTP tak segerak PHP melalui kes pembangunan sebenar.

HTTP 200 OK: Fahami maksud dan tujuan respons yang berjaya HTTP 200 OK: Fahami maksud dan tujuan respons yang berjaya Dec 26, 2023 am 10:25 AM

Kod Status HTTP 200: Terokai Maksud dan Tujuan Respons yang Berjaya Kod status HTTP ialah kod angka yang digunakan untuk menunjukkan status respons pelayan. Antaranya, kod status 200 menunjukkan bahawa permintaan telah berjaya diproses oleh pelayan. Artikel ini akan meneroka maksud khusus dan penggunaan kod status HTTP 200. Mula-mula, mari kita fahami klasifikasi kod status HTTP. Kod status terbahagi kepada lima kategori iaitu 1xx, 2xx, 3xx, 4xx dan 5xx. Antaranya, 2xx menunjukkan tindak balas yang berjaya. Dan 200 ialah kod status yang paling biasa dalam 2xx

See all articles