Protokol http telah dicipta dalam tempoh tersebut. Penerangan ringkas tentang protokol HTTP

Artikel itu mendedahkan intipati protokol HTTP, dan juga bercakap tentang skema yang berbeza untuk operasinya. Perhatian khusus diberikan kepada intipati interaksi antara penyemak imbas dan pelayan.

Intipati cara HTTP berfungsi

Pertama sekali, anda harus memahami proses interaksi antara pelayan dan pelayar pengguna. Untuk memaparkan halaman tapak pada skrin, penyemak imbas menghantar isyarat permintaan kepada pelayan, selepas itu kandungan tapak yang dikodkan datang dari pelayan, yang ditukar kepada paparan biasa tapak. Mempelajari proses ini untuk pembangun web adalah penting kerana dengan memahami intipati proses, anda boleh mempercepatkan prestasi sumber anda.

Pertukaran data antara pelayan dan penyemak imbas berlaku melalui protokol HTTP. Pelayar itu sendiri, dari sudut pengaturcaraan, adalah Pelanggan HTTP, kerana ia menggunakan protokol ini semasa menghantar permintaan dan untuk menerima data respons.

Sekarang mari kita dedahkan intipati konsep protokol HTTP

HTTP (HyperText Transfer Protocol)– proses mengikut mana semua jenis pertukaran maklumat dijalankan di World Wide Web.

Kami, sebagai pembangun web, hanya berminat dalam proses pertukaran dan paparan maklumat.

Protokol disegerakkan

Pertukaran data dijalankan mengikut skema "pelayan-pelanggan". Dalam skim ini, pelanggan ialah peranti yang menghantar permintaan untuk memberikan beberapa maklumat, dan pelayan ialah sistem yang menerima permintaan, memprosesnya dan menghantar respons kembali kepada klien. Proses interaksi itu sendiri boleh dibahagikan kepada dua peringkat: menghantar permintaan HTTP dan menerima respons HTTP.

Permintaan dan respons tidak boleh dihantar secara serentak; penyegerakan proses mesti dikekalkan. Iaitu, penghantaran tindak balas akan bermula hanya selepas selesai menghantar permintaan kerja pada prinsip yang berbeza adalah mustahil. Untuk menjadikannya lebih jelas, mari kita lukiskan analogi dengan bas: anda tidak akan dapat menggunakannya sehingga ia tiba di perhentian.

Bagaimanakah permintaan dibuat?

Proses menghantar permintaan ke pelayan boleh dibahagikan kepada beberapa komponen:

  1. Pertama sekali, permintaan DNS dibuat, yang mesti menukar alamat tapak daripada format URI kepada IP (bentuk angka alamat URI). Ini ialah format alamat yang digunakan di World Wide Web.
  2. Selepas menentukan IP, sambungan diwujudkan antara pelayan dan klien HTTP.
  3. Memajukan permintaan.
  4. Kelewatan, yang termasuk menghantar maklumat ke pelayan, memprosesnya dan menghantar respons kepada permintaan. Pengaturcara memanggil tempoh masa ini menunggu jawapan.
  5. Menerima jawapan kepada permintaan.

Anda boleh menjejaki semua peringkat ini menggunakan panel pembangun web dalam penyemak imbas anda.

Daripada senarai semua peringkat, yang pertama agak panjang. Pada permulaan pembangunan protokol HTTP menggunakan skim pemprosesan data lapuk, yang menyediakan untuk memutuskan sambungan selepas respons kepada permintaan yang diperlukan diterima. Ini sangat melambatkan proses bekerja di ruang Internet. Walau bagaimanapun, selepas penyeragaman baru protokol dikeluarkan HTTP versi 1.1, mod sambungan baharu telah tersedia - terus-hidup, mengikut mana sambungan telah menjadi tidak dapat dipisahkan. Akibatnya, selepas memproses permintaan pertama, anda tidak perlu melalui peringkat pertama lagi, tetapi segera beralih ke yang kedua.

nota itu

Sambungan dikekalkan hanya dalam satu sumber web. Apabila berpindah ke hos lain, sambungan terputus dan peringkat pertama sekali lagi menjadi bahagian penting dalam proses pemprosesan permintaan.

Proses paling lama dalam protokol sedang menunggu jawapan. Dalam kes ini, menaik taraf spesifikasi tidak akan mengurangkan masa pemprosesan. Juga, proses ini tidak terjejas dalam apa-apa cara oleh kuasa peranti di mana sumber itu dikeluarkan. Komputer memasuki proses hanya pada peringkat akhir, apabila jawapan telah tiba dan perlu diproses.

Bentuk kerja ini mengurangkan peluang tapak kepada sifar dalam persaingan dengan aplikasi desktop. Ini membawa cara pertama untuk mempercepatkan tapak web - anda perlu meminimumkan bilangan panggilan ke pelayan yang ditulis dalam kod.

Sambungan HTTP selari

Untuk menyelesaikan masalah kependaman yang lama dan komunikasi yang terganggu dengan hos, skema komunikasi selari antara pelanggan dan pelayan telah dibuat. Dengan kata lain, anda boleh mewujudkan sambungan dengan beberapa hos secara serentak. Pembangun standard HTTP 1.1 Adalah disyorkan untuk menyambung tidak lebih daripada 2 saluran sambungan secara serentak. Tetapi perlu diingat bahawa spesifikasi itu bermula pada zaman dinosaur purba. Kini penyemak imbas dengan mudah menyokong komunikasi dengan 4 saluran serentak secara lalai, dan jika anda menggali tetapan klien, angka ini boleh ditingkatkan kepada 8.

Setiap saluran beroperasi mengikut skema sambungan lama, tetapi peningkatan bilangannya telah membawa kepada perubahan ketara dari segi masa pemuatan sumber.

Sambungan HTTP saluran paip

Dengan perkembangan teknologi, proses interaksi antara pelayan dan pelayar mula berkembang dengan ketara. Satu kejayaan penting dalam perkara ini ialah penciptaan skim saluran paip untuk menghantar permintaan ke pelayan (dalam asal - Saluran paip HTTP). Mengikut skim ini, ia menjadi mungkin untuk menghantar beberapa permintaan melalui satu saluran tanpa menunggu jawapan kepada mereka. Sebaliknya, pelayan mula menghantar respons kepada setiap permintaan mengikut keutamaan.

Terima kasih kepada inovasi ini, ia juga mungkin untuk mengurangkan bilangan paket TCP/IP. Oleh itu, anda boleh meletakkan beberapa dalam satu pakej sedemikian Permintaan HTTP. Akibatnya, bukan sahaja operasi protokol akan bertambah baik, tetapi juga kecekapan Internet secara keseluruhan akan meningkat.

Merumuskan

Pada masa ini spesifikasi HTTP 1.1 adalah satu set peraturan yang ketinggalan zaman dari segi moral. Kerja-kerja pemodenannya telah berlangsung sejak sekian lama, satu contoh yang mencolok ialah HTTP-NG Dan SPDY. Membangunkan HTTP Ia juga boleh dilakukan dengan menambah baik bahasa pengaturcaraan laman web HTML5. Semua proses ini akan mempercepatkan operasi protokol, tetapi peraturan meminimumkan akses kepada pelayan, yang akan meningkatkan kelajuan sumber, akan sentiasa relevan.

Kami telah mengeluarkan buku baharu, Pemasaran Kandungan Media Sosial: Cara Mendalami Kepala Pengikut Anda dan Membuat Mereka Jatuh Cinta dengan Jenama Anda.

Langgan

HTTP ialah perkara yang membolehkan data dipindahkan. Pada mulanya, ia dicipta untuk menghantar dan menerima dokumen yang mengandungi pautan di dalam untuk membuat peralihan kepada sumber pihak ketiga.

Singkatan berbunyi "Protokol Pemindahan HyperText," yang diterjemahkan bermaksud "protokol pemindahan." HTTP tergolong dalam kumpulan lapisan aplikasi berdasarkan spesifikasi yang digunakan oleh OSI.

Untuk lebih memahami maksud HTTP, mari lihat analogi mudah. Bayangkan anda sedang berkomunikasi dengan orang asing di rangkaian sosial. Dia menghantar mesej kepada anda dalam bahasa Inggeris, anda menerimanya. Tetapi anda tidak dapat memahami kandungan kerana anda tidak bercakap bahasa dengan baik. Untuk mentafsir mesej, gunakan kamus. Setelah memahami intipati, anda menjawab orang asing dalam bahasa Rusia dan menghantar jawapannya. Orang asing menerima jawapan dan, dengan bantuan penterjemah, mentafsir mesej. Untuk memudahkan keseluruhan mekanisme, protokol Internet HTTP melaksanakan fungsi penterjemah. Dengan bantuan mereka, penyemak imbas boleh menterjemah kandungan yang disulitkan halaman web dan memaparkan kandungannya.

HTTP untuk apa?

Protokol HTTP digunakan untuk bertukar maklumat menggunakan model pelayan pelanggan. Pelanggan mengarang dan menghantar permintaan kepada pelayan, kemudian pelayan memproses dan menganalisisnya, selepas itu respons dibuat dan dihantar kepada pengguna. Pada akhir proses ini, pelanggan mengeluarkan arahan baru, dan semuanya berulang.

Oleh itu, protokol HTTP membolehkan anda bertukar maklumat antara pelbagai aplikasi pengguna dan pelayan web khas, serta menyambung ke sumber web (biasanya pelayar). Hari ini, protokol yang diterangkan memastikan operasi keseluruhan rangkaian. Protokol pemindahan data HTTP juga digunakan untuk memindahkan maklumat ke atas protokol peringkat rendah lain, contohnya, WebDAV atau SOAP. Dalam kes ini, protokol adalah alat pengangkutan. Banyak program juga bergantung pada HTTP sebagai alat utama untuk bertukar maklumat. Data dibentangkan dalam pelbagai format, contohnya, JSON atau XML.

HTTP ialah protokol untuk bertukar maklumat melalui sambungan IP/TCP. Biasanya, pelayan menggunakan port TCP 80 untuk tujuan ini. Jika port tidak dinyatakan, perisian klien akan menggunakan port jenis TCP 80 secara lalai. Dalam sesetengah kes, port lain boleh digunakan.

Protokol HTTP menggunakan skema penyulitan simetri dan menggunakan sistem kripto simetri. Sistem kripto simetri melibatkan penggunaan kunci yang sama untuk menyulitkan dan menyahsulit maklumat.

Apakah perbezaan antara HTTP dan HTTPS

Perbezaannya boleh dikesan walaupun dari penyahkodan singkatan. HTTPS adalah singkatan dari Hypertext Transfer Protocol Security. Oleh itu, HTTP ialah protokol bebas, dan HTTPS ialah lanjutan untuk melindunginya. HTTP menghantar maklumat tanpa perlindungan, manakala HTTPS menyediakan perlindungan kriptografi. Ini terutama berlaku untuk sumber dengan kebenaran yang bertanggungjawab. Ini mungkin rangkaian sosial atau tapak sistem pembayaran.

Apakah bahaya menghantar data yang tidak dilindungi? Program pemintas boleh memindahkannya kepada penyerang pada bila-bila masa. HTTPS mempunyai organisasi teknikal yang kompleks, yang membolehkan anda melindungi maklumat dengan pasti dan menghapuskan kemungkinan akses yang tidak dibenarkan kepadanya. Perbezaannya terletak pada pelabuhan. HTTPS biasanya berfungsi pada port 443.

Oleh itu, HTTP digunakan untuk pemindahan data, dan HTTPS membenarkan pemindahan data selamat menggunakan penyulitan dan kebenaran pada sumber dengan tahap keselamatan yang tinggi.

Fungsi tambahan

HTTP kaya dengan fungsi dan serasi dengan pelbagai sambungan. Spesifikasi 1.1 yang digunakan hari ini membolehkan pengepala Naik Taraf digunakan untuk menukar dan berfungsi melalui protokol lain apabila bertukar data. Untuk melakukan ini, pengguna mesti menghantar permintaan kepada pelayan dengan pengepala ini. Jika pelayan perlu bertukar kepada pertukaran tertentu menggunakan protokol yang berbeza, ia mengembalikan permintaan kepada pelanggan, yang memaparkan status "426 Peningkatan Diperlukan".

Ciri ini amat relevan untuk bertukar-tukar maklumat melalui WebSocket (mempunyai spesifikasi RFC 6455, membolehkan anda menukar data pada bila-bila masa, tanpa permintaan HTTP yang tidak perlu). Untuk berhijrah ke WebSocket, seorang pengguna menghantar permintaan dengan pengepala Naik Taraf dan nilai "websocket". Seterusnya, pelayan bertindak balas dengan "101 Protokol Penukaran." Selepas detik ini, pemindahan maklumat melalui WebSocket bermula.

Kami membentangkan kepada anda penerangan tentang aspek utama protokol HTTP - protokol rangkaian yang, dari awal 90-an hingga hari ini, membenarkan penyemak imbas anda memuatkan halaman web. Artikel ini ditulis untuk mereka yang baru mula bekerja dengan rangkaian komputer dan membangunkan aplikasi rangkaian, dan yang masih sukar membaca spesifikasi rasmi sendiri.

HTTP- protokol pemindahan data yang digunakan secara meluas, pada asalnya bertujuan untuk pemindahan dokumen hiperteks (iaitu, dokumen yang mungkin mengandungi pautan yang membenarkan navigasi ke dokumen lain).

Singkatan HTTP adalah singkatan dari Protokol Pemindahan Hiperteks, "Protokol Pemindahan Hiperteks". Menurut spesifikasi OSI, HTTP ialah protokol lapisan aplikasi (atas, ke-7). Versi semasa protokol, HTTP 1.1, diterangkan dalam spesifikasi RFC 2616.

Protokol HTTP melibatkan penggunaan struktur pemindahan data pelayan pelanggan. Aplikasi klien menjana permintaan dan menghantarnya ke pelayan, selepas itu perisian pelayan memproses permintaan, menjana respons dan menghantarnya semula kepada klien. Aplikasi klien kemudiannya boleh terus menghantar permintaan lain, yang akan diproses dengan cara yang sama.

Tugas yang secara tradisinya diselesaikan menggunakan protokol HTTP ialah pertukaran data antara aplikasi pengguna yang mengakses sumber web (biasanya pelayar web) dan pelayan web. Pada masa ini, ia adalah terima kasih kepada protokol HTTP yang World Wide Web beroperasi.

HTTP juga sering digunakan sebagai protokol pengangkutan untuk protokol lapisan aplikasi lain seperti SOAP, XML-RPC dan WebDAV. Dalam kes ini, protokol HTTP dikatakan digunakan sebagai "pengangkutan".

API bagi banyak produk perisian juga membayangkan penggunaan HTTP untuk pemindahan data - data itu sendiri boleh dalam sebarang format, contohnya, XML atau JSON.

Biasanya, pemindahan data HTTP dijalankan melalui sambungan TCP/IP. Dalam kes ini, perisian pelayan biasanya menggunakan port TCP 80 (dan, jika port tidak dinyatakan secara eksplisit, maka perisian klien biasanya menggunakan port 80 secara lalai untuk membuka sambungan HTTP), walaupun ia boleh menggunakan mana-mana yang lain.

Bagaimana untuk menghantar permintaan HTTP?

Cara paling mudah untuk memahami protokol HTTP ialah cuba mengakses beberapa sumber web secara manual. Bayangkan anda seorang pelayar dan anda mempunyai pengguna yang benar-benar ingin membaca artikel oleh Anatoly Alizar.

Katakan dia memasukkan yang berikut dalam bar alamat:

Http://alizar.habrahabr.ru/

Sehubungan itu, anda, sebagai pelayar web, kini perlu menyambung ke pelayan web di alizar.habrahabr.ru.

Untuk melakukan ini, anda boleh menggunakan mana-mana utiliti baris arahan yang sesuai. Sebagai contoh, telnet:

Telnet alizar.habrahabr.ru 80

Biar saya jelaskan dengan segera bahawa jika anda tiba-tiba berubah fikiran, tekan Ctrl + “]” dan kemudian masukkan - ini akan membolehkan anda menutup sambungan HTTP. Selain telnet, anda boleh mencuba nc (atau ncat) - bergantung pada citarasa anda.

Selepas anda menyambung ke pelayan, anda perlu menghantar permintaan HTTP. Ini, dengan cara ini, sangat mudah - permintaan HTTP boleh terdiri daripada hanya dua baris.

Untuk menjana permintaan HTTP, anda perlu mengarang baris permulaan, dan juga menetapkan sekurang-kurangnya satu pengepala - ini ialah pengepala Hos, yang wajib dan mesti ada dalam setiap permintaan. Hakikatnya ialah penukaran nama domain kepada alamat IP dilakukan di sisi klien, dan, oleh itu, apabila anda membuka sambungan TCP, pelayan jauh tidak mempunyai sebarang maklumat tentang alamat mana yang digunakan untuk sambungan: boleh jadi, sebagai contoh, alamat alizar.habrahabr.ru, habrahabr.ru atau m.habrahabr.ru - dan dalam semua kes ini jawapannya mungkin berbeza. Walau bagaimanapun, sebenarnya, dalam semua kes sambungan rangkaian dibuka dengan nod 212.24.43.44, dan walaupun pada mulanya semasa membuka sambungan itu bukan alamat IP ini yang ditentukan, tetapi beberapa nama domain, pelayan tidak dimaklumkan tentang perkara ini dalam apa-apa cara - dan itulah sebabnya alamat ini perlu lulus dalam pengepala Hos.

Baris permintaan permulaan (awal) untuk HTTP 1.1 disusun mengikut skema berikut:

Sebagai contoh (garis permulaan sedemikian mungkin menunjukkan bahawa halaman utama tapak sedang diminta):

Dan, sudah tentu, jangan lupa bahawa mana-mana teknologi menjadi lebih mudah dan jelas apabila anda benar-benar mula menggunakannya.

Semoga berjaya dan pembelajaran yang bermanfaat!

Tag: Tambah tag

Jika anda ingin mengetahui cara data dipindahkan di Internet, artikel ini adalah untuk anda. Saya akan memberitahu anda semua yang saya tahu tentang protokol HTTP dan HTTPS, tunjukkan perbezaan dan perbezaan antara mereka. Selamat membaca!

HTTP 1.1 - apakah protokol ini?

HTTP (Bahasa Inggeris: “Hypertext Transfer Protocol”) ialah protokol rangkaian peringkat atas untuk menghantar hiperteks dan data arbitrari di Internet.

Menggunakan HTTP, penyemak imbas menerima data daripada pelayan web dan boleh memaparkannya dalam bentuk yang boleh diterima dan difahami oleh pengguna Internet. Proses sebaliknya berlaku dengan cara yang sama - menghantar data pengguna kembali ke pelayan (contohnya, semasa pendaftaran).

Kandungan yang dihantar dari dan ke pelayan boleh dipersembahkan dalam sebarang bentuk: gambar, fail, dokumen, pautan dan kod - dalam apa jua keadaan, ia adalah terima kasih kepada HTTP bahawa orang boleh menggunakan Internet dan memuatkan ratusan halaman web dalam penyemak imbas.

Versi protokol semasa ialah 1.1. Penerangannya adalah dalam spesifikasi RFC.

HTTP digunakan dalam infrastruktur pemindahan data pelanggan-pelayan. Bagaimana ia berfungsi? Aplikasi di bahagian "pelanggan" menjana permintaan untuk pemprosesan di bahagian "pelayan", selepas itu respons dihantar semula kepada "pelanggan". "Pelanggan" kemudiannya boleh memulakan permintaan tambahan dan menerima respons baharu. Dan sebagainya.

Aplikasi "klien" yang paling biasa ialah pelayar web yang melaluinya sumber web diakses. Dengan perkembangan teknologi mudah alih, aplikasi mudah alih telah ditambahkan pada penyemak imbas pada pelbagai telefon pintar dan tablet. Selain itu, bahagian pelayan aplikasi pelbagai disiplin moden boleh memproses data secara serentak dari kedua-dua penyemak imbas dan telefon pintar. Semua ini dilakukan melalui protokol HTTP.

Selain itu, HTTP sering bertindak sebagai protokol pengangkutan untuk memindahkan protokol aplikasi lain dan API mereka: WebDAV, XML-RPC, REST, SOAP. Nah, data yang dihantar melalui API boleh mempunyai pelbagai format: XML, JSON dan lain-lain.

Bagaimanakah data ini dihantar? Selalunya melalui sambungan TCP/IP: aplikasi klien menggunakan port TCP 80 secara lalai, dan pelayan boleh menggunakan mana-mana yang lain, tetapi biasanya ini juga port 80.

Objek manipulasi HTTP ialah sumber yang ditentukan dalam URI permintaan aplikasi klien untuk mengenal pasti dengan betul "apa yang sebenarnya diperlukan." Biasanya ini adalah fail, data atau objek logik yang disimpan pada pelayan. Dalam kes ini, permintaan boleh menunjukkan dengan tepat cara membentangkan data yang sama: format, pengekodan, bahasa yang hendak dipilih. "Ciri" ini membolehkan anda menukar bukan sahaja hiperteks, tetapi juga data binari.

Ciri kedua HTTP ialah ia tidak menyimpan keadaan antara pasangan permintaan-tindak balas berturut-turut. Tetapi ini tidak menjadi masalah kerana komponen aplikasi pada bahagian klien atau pelayan sendiri boleh menyimpan maklumat tentang keadaan permintaan dan respons terkini. Di sisi pelanggan, maklumat sedemikian dipanggil kuki, di bahagian pelayan - sesi.

Pada masa yang sama, tidak menjadi masalah bagi penyemak imbas pelanggan untuk memantau kelewatan tindak balas pelayan, dan bagi pelayan tidak menjadi masalah untuk menyimpan pengepala permintaan terkini dan alamat IP pelanggan. Tetapi, saya tekankan sekali lagi, protokol itu sendiri tidak tahu apa-apa tentang perkara ini - ia hanya menghantar data.

Perantara (pelayan proksi) juga boleh mengambil bahagian dalam pemindahan data untuk membezakan proksi daripada pelayan akhir (yang dipanggil "pelayan sumber").

Keajaiban bermula apabila program yang sama (klien atau pelayan) boleh melaksanakan fungsi perantara, klien atau pelayan - bergantung pada tugas.

HTTP/2 - apakah jenis protokol ini?

Versi asal protokol HTTP muncul di CERN pada tahun 1991. Sudah pada tahun 1992, versi awam HTTP 0.9 dan spesifikasinya telah diterbitkan, berkat peraturan interaksi antara aplikasi klien dan pelayan telah diperkemas, serta penyempadanan fungsi yang jelas.

HTTP/1.0 muncul pada tahun 1996, dan versi moden protokol - HTTP/1.1 - pada tahun 1999. Pada permulaan milenium, protokol HTTP belajar untuk menyokong mod sambungan berterusan, i.e. biarkan sambungan terbuka selepas respons kepada permintaan diterima. Ini membolehkan anda menghantar beberapa permintaan serentak dalam satu sambungan, dan bukannya membuka dan menutup sesi setiap kali.

Masa berlalu dan apabila Internet berkembang, saiz halaman meningkat, bilangan permintaan bertambah - lebih banyak sumber diperlukan. Ini adalah bagaimana keperluan untuk protokol baru timbul.

Dan enam belas tahun kemudian, pada tahun 2015, versi akhir spesifikasi draf untuk versi protokol seterusnya, HTTP/2, telah diterbitkan. Protokol binari HTTP/2 lebih bersedia untuk realiti moden berbanding HTTP 1.1 pendahulunya kerana protokol baharu menyelesaikan masalah pemindahan data yang paling ketara di Internet - berbilang sambungan terbuka.

Dan semua kerana tapak semasa memuatkan banyak elemen, kedua-dua dari pelayan mereka dan dari CDN: skrip JS, gaya CSS, fon dan imej. Apabila memindahkan set lengkap fail menggunakan protokol HTTP 1.1, berbilang sambungan dibuat. Jika pada masa hadapan kami bertukar kepada protokol HTTP/2, pemindahan akan berlaku dalam satu sambungan antara klien dan pelayan, yang akan mempercepatkan dan mengoptimumkan pemuatan kandungan tapak dengan ketara.

Ciri utama HTTP/2 yang berguna untuk tapak web:

  • Mengatur dan mengurus keutamaan permintaan/aliran - klien secara bebas menetapkan keutamaan sumber dan data untuk pelayan
  • Pemampatan pengepala HTTP;
  • Minta pemultipleksan atau pemuatan selari beberapa elemen tapak melalui sambungan TCP - beberapa permintaan dihantar melalui satu sambungan, dan pelanggan boleh menerima respons dalam sebarang pesanan, i.e. tidak lagi memerlukan berbilang sambungan TCP terbuka;
  • Ketersediaan dan sokongan daripada pelayan pemberitahuan tolak proaktif - pelayan boleh menghantar data secara bebas kepada klien yang belum diminta oleh pelanggan (contohnya, berdasarkan maklumat tentang halaman mana yang akan dibuka oleh pengguna selepas ini).

Sudah tentu, perkara utama di sini ialah pemultipleksan strim. Prinsip operasi mudah dijelaskan: Paket sambungan TCP/IP bercampur dalam satu sambungan. Oleh itu, dalam mod campuran, beberapa "kereta data" disambungkan ke dalam satu "kereta api", yang dipisahkan "setibanya". Sebelum ini, "kereta" itu terpaksa bergerak lebih lama dan berasingan, tetapi kini mereka akan bergerak bersama-sama dan lebih pantas.

Kelebihan protokol HTTP/2 di atas akan membolehkan pembangun web bernafas secara mendalam dan meninggalkan "tongkat" seperti:

  • Menggunakan lebih banyak domain berkaitan untuk memastikan penubuhan sejumlah besar sambungan TCP/IP (untuk memuat turun fail);
  • Sprite imej - apabila imej digabungkan menjadi satu fail untuk mengurangkan bilangan permintaan ke pelayan web (dan fail itu sendiri "mengembang" kerana lebih banyak imej ditulis kepadanya);
  • Menggabungkan fail CSS dan JS, yang juga dibuat untuk mengurangkan permintaan.

Kelebihan terakhir yang jelas ialah anda tidak perlu melakukan apa-apa tambahan dengan tapak itu sendiri (untuk mendayakan HTTP/2) - semua kerja dijalankan pada pelayan dalam hampir "1 klik", dan untuk pelanggan pengehosan kongsi dan VPS ia secara amnya tidak akan disedari.

Dalam satu perkataan, kita akan hidup!

HTTP/2 telah dicipta dan dibangunkan berdasarkan draf protokol SPDY/3 (Google) dan mengatasinya - Google mengiktiraf kelebihan HTTP/2 sebagai lebih menjanjikan dan akan meninggalkan sokongan untuk SPDY/2 pada masa hadapan.

Ramalan pecutan respons pelayan melalui protokol HTTP/2 adalah kira-kira 30% - ujian sebenar telah menunjukkan kelajuan 19-23% lebih tinggi dan ini bukan hadnya.

Mengikut keputusan ujian oleh Airi.rf, peningkatan kelajuan daripada hanya mendayakan protokol HTTP/2 ialah 13-18% (tanpa pengoptimuman). Mengapa ia penting?

Walaupun pada hakikatnya sokongan tapak untuk protokol HTTP/2 pada masa ini tidak secara langsung mempengaruhi kedudukan tapak dalam Google dan Yandex, kedudukan dalam hasil carian dipengaruhi oleh kelajuan pemuatan. Dan kerana protokol menunjukkan kelajuan muat turun yang lebih tinggi (yang merupakan faktor yang agak ketara), ia secara tidak langsung mempengaruhi kedudukan.

Terutamanya disebabkan oleh faktor tingkah laku. Pecutan pemuatan membolehkan pengguna kurang letih dan lebih fokus untuk meneroka tapak: melihat lebih banyak halaman dan tidak meninggalkan tapak kerana masa pemuatan yang lama (lantunan dikurangkan).

Kebanyakan penyemak imbas moden sudah menyokong HTTP/2 - ~70% trafik Internet melaluinya:

  • Chrome 41-52 dan Chrome 46+ pada Android;
  • Firefox 36-48 dan Firefox 41+ pada Android;
  • Opera 28-34 dan Opera 30+ pada Android;
  • Safari 9 dan Safari dalam iOS 9.1;
  • IE 11 pada pelayar Windows 10 dan Edge 12, 13.

Masih belum jelas bila peralihan penuh kepada HTTP/2 akan berlaku - kemungkinan besar dalam masa terdekat. Perkara utama ialah tiada siapa yang akan tergesa-gesa meninggalkan HTTP/1.x. Seperti yang mereka katakan: "Jika ia berfungsi, jangan sentuhnya."

Apakah maksud protokol HTTPS dan di mana ia digunakan?

Nah, anda sudah mengetahui segala-galanya tentang pertukaran data menggunakan protokol HTTP: sebarang pemindahan data dijalankan melalui permintaan menggunakan protokol pengangkutan ini. Mengapakah kita memerlukan HTTPS dan apakah itu? Lagipun, kita hidup biasa tanpa dia?

Masalahnya ialah data melalui HTTP tidak dilindungi dan dihantar dalam teks yang jelas. Internet ialah rangkaian nod yang diedarkan secara global. Dan jika anda menghantar data terbuka melalui protokol tidak selamat (Wi-Fi di pusat beli-belah juga terpakai di sini), maka salah satu daripada nod ini boleh memintasnya.

Tidak sengaja, sudah tentu, ia hanya boleh digodam oleh penjenayah. HTTPS dicipta untuk memastikan sambungan selamat dan data dihantar dalam bentuk yang disulitkan menggunakan protokol kriptografi SSL/TLS. Ini ialah "pembungkus" khas di atas HTTP ia menyulitkan data, menjadikannya tidak boleh diakses oleh penceroboh dan orang yang tidak dibenarkan.

HTTPS - Bahasa Inggeris "Protokol Pemindahan Hiperteks Selamat".

Jadi, tidak seperti port lalai 80 dalam HTTP, HTTPS menggunakan port TCP 443 dan mempunyai kunci penyulitan. Kekunci boleh menjadi 40, 56, 128 atau 256 bit panjang;

Kini semua pelayar menyokong HTTPS - ia dihidupkan secara automatik apabila boleh dan pelayan memerlukannya.

Adalah penting untuk menggunakan HTTPS dalam perkhidmatan berikut:

  • Sistem pembayaran elektronik (bank, wang elektronik, dll.);
  • Perkhidmatan yang menerima dan menghantar maklumat peribadi dan data peribadi, contohnya, Yandex mempunyai: Pasport, Teksi, Direct, Metrica, Mail, Money, Webmaster dan lain-lain;
  • Rangkaian sosial dan akaun peribadi dalam perkhidmatan Internet;
  • Enjin carian.

HTTPS berfungsi dengan mudah. Saya akan menerangkan dengan contoh.

Anda meletakkan maklumat penting (log masuk, kata laluan, butiran kad, data peribadi) dalam sel, "kunci dengan kunci": sel menyulitkan data anda menggunakan kunci ini.

Sekarang hantar melalui pos kepada penerima. Penerima menerima sel bungkusan, tetapi tidak boleh membukanya - dia tidak mempunyai kunci. Kemudian dia mengunci (menyulitkan) sel dengan kunci kedua dan mengembalikan bungkusan itu kepada anda. Anda menerima pakej dengan dua kunci, tetapi anda mempunyai kunci satu. Kini anda boleh membuka kunci anda (menyahsulit data) dan menghantar semula pakej itu semula kepada penerima asal.

Pada masa yang sama, data kekal dilindungi - lagipun, ia tidak dilihat atau diubah oleh sesiapa dan sehingga ia diterima oleh penerima, ia dilindungi oleh kunci yang disulitkan. Penerima menerima bungkusan itu, sudah dengan satu kunci, menyahsulitnya dan memproses data anda. Sebagai contoh, ia menjalankan transaksi anda.

Itu sahaja - begitulah cara HTTPS berfungsi.

Caranya di sini ialah semasa pertukaran yang pertama, kunci penyulitan ditukar supaya ia diketahui oleh kedua-dua penerima akhir, tetapi tidak diketahui oleh mana-mana nod di sepanjang laluan data. Selepas menukar sifir, anda boleh bertukar-tukar mesej secara bebas (disulitkan) tanpa rasa takut akan pemintasan data ini, kerana tanpa kunci sifir tidak mungkin untuk membuka dan membacanya.

Satu-satunya kaveat di sini ialah anda perlu tahu bahawa anda menghantar data dengan tepat di mana ia diperlukan. Dan titik akhir adalah destinasi. Tetapi anda perlu mengesahkan dan mengetahui dengan pasti bahawa destinasi akhir wujud dan dikawal oleh pelayan tempat data dihantar.

Untuk melakukan ini, pelayan menerima sijil keselamatan HTTPS khas daripada pusat pensijilan, yang mengesahkan "muktamad" destinasi (bahawa tapak itu bukan nod yang menghantar data lagi) dan kefungsian teknologi penyulitan SSL/TLS, i.e. keselamatan sambungan.

Dan inilah rupa sijil itu sendiri:

Pada masa ini, HTTPS terbina dalam semua pelayar moden dan semua yang diperlukan daripada pengguna untuk mengekalkan keselamatan penghantaran data melalui HTTPS adalah dengan mengemas kini perisian secara kerap untuk melayari, menerima dan menghantar data penting di Internet.

Dengan menjalankan interaksi pelayan pelanggan melalui protokol HTTPS, anda tidak perlu risau tentang keselamatan data anda - anda dilindungi dengan pasti daripada mencuri dengar pada sambungan rangkaian anda: serangan sniffer dan serangan man-in-the-middle.

Apakah maksud ikon HTTPS yang dipalang dan ikon HTTPS hijau, apakah perbezaannya? Dalam keselamatan. Hijau selamat, merah dan dipalang tidak selamat.

Dan adalah sangat mudah bahawa ikon HTTPS yang dipalang bermakna walaupun menggunakan protokol ini, sambungan tidak selamat. Ini berlaku apabila elemen tapak tidak dimuatkan melalui HTTPS atau sijil telah tamat tempoh. Pengguna boleh melihat serta-merta - ya, ia tidak selamat. Dan dia boleh meninggalkan tapak itu, atau mempertaruhkan datanya.

HTTP 1.1, HTTP/2 atau HTTPS yang lebih baik?

Untuk meringkaskan, saya akan menyentuh topik penggunaan protokol yang lebih baik.

Adalah jelas bahawa pada masa ini HTTP 1.1 adalah protokol yang paling biasa dan digunakan secara lalai. Masa HTTP/2 belum tiba, tetapi tidak lama lagi kebanyakan trafik Internet akan melalui versi kedua protokol HTTP. Ini akan menjadikan kehidupan lebih mudah untuk pengguna kerana tapak akan dimuatkan dengan lebih cepat. Pentadbir pelayan dan laman web juga akan gembira, kerana protokol baharu membolehkan anda mengoptimumkan tapak web dengan cara baharu, mempercepatkan pemuatan dan muat naik data.

Pada masa yang sama, hampir tidak mungkin semua tapak akan bertukar kepada HTTPS, kerana untuk tujuan menggunakan kandungan hiburan, penyulitan tidak berguna. Ya, kini 10% tapak menggunakan HTTPS dalam ranking Alexa sumber web yang paling banyak dikunjungi. Tetapi ini hanya sepuluh peratus, termasuk gergasi seperti Google, PayPal, Amazon, Aliexpress dan lain-lain. Iaitu, terdapat banyak tapak yang tidak menggunakan HTTPS bermakna melanggar hak pengguna Internet untuk keselamatan dan integriti data.

Tetapi laman web biasa seperti blog tujuh blogger tidak memerlukan HTTPS - tiada penerimaan data peribadi atau pembayaran, tiada pendaftaran dan tiada penghantaran mesej penting.

Jadi dalam masa terdekat kami akan beransur-ansur beralih daripada HTTP 1.1 memihak kepada HTTP/2 dan HTTPS.

Protokol Pemindahan Hiperteks HTTP (RFC 1945, 2068) direka untuk memindahkan dokumen hiperteks daripada pelayan kepada klien. Protokol HTTP ialah protokol lapisan aplikasi. Menurut RFC, protokol pengangkutannya mestilah protokol berorientasikan sambungan yang memindahkan data dengan pasti dan tidak mengekalkan sempadan antara mesej. Dalam praktiknya, dalam kebanyakan kes, protokol pengangkutan untuk HTTP ialah TCP, dengan pelayan HTTP (pelayan Web) menunggu sambungan dari sisi klien, standard pada port TCP 80 dan klien HTTP (pelayar Web) memulakan sambungannya.

Dalam istilah Web, semua yang boleh diakses oleh pengguna - dokumen, imej, program - dipanggil sumber. Setiap sumber mempunyai alamat unik untuk Web, dipanggil pengecam sumber universal (URI - Pengecam Sumber Universal). Dalam kes yang paling umum, URI kelihatan seperti ini:

protocol://user:password@host:port/path/file?paremeters#fragment

Medan URI individu mempunyai makna berikut:

protokol - protokol aplikasi di mana sumber diakses;

pengguna - pengguna yang bagi pihaknya sumber itu diakses atau pengguna itu sendiri sebagai sumber;

kata laluan - kata laluan pengguna untuk pengesahan apabila mengakses sumber;

hos - alamat IP atau nama pelayan di mana sumber itu berada;

port - nombor port di mana pelayan sedang berjalan, menyediakan akses kepada sumber;

laluan - laluan ke fail yang mengandungi sumber;

fail - fail yang mengandungi sumber;

parameter - parameter untuk pemprosesan oleh program sumber;

serpihan - titik dalam fail bermula dari mana sumber harus dipaparkan.

Interaksi antara klien dan pelayan Web dijalankan dengan bertukar-tukar mesej. Mesej HTTP dibahagikan kepada permintaan klien kepada pelayan dan respons pelayan kepada klien.

Mesej permintaan dan respons mempunyai format yang sama. Kedua-dua jenis mesej kelihatan seperti ini: mula-mula terdapat baris permulaan, kemudian mungkin satu atau lebih medan pengepala, juga dipanggil pengepala, kemudian baris kosong (iaitu, baris yang terdiri daripada aksara CR dan LF), menunjukkan penghujung medan pengepala dan kemudian mungkin badan mesej:

garisan permulaan

medan pengepala 1

medan pengepala 2

medan pengepala N

badan mesej

Format baris awal klien dan pelayan berbeza dan akan dibincangkan di bawah. Terdapat empat jenis tajuk:

pengepala umum, yang boleh hadir dalam kedua-dua permintaan dan respons;

pengepala permintaan, yang hanya boleh hadir dalam permintaan;

pengepala respons, yang hanya boleh hadir dalam respons;

pengepala entiti, yang merujuk kepada badan mesej dan menerangkan kandungannya.

Setiap pengepala terdiri daripada tajuk, aksara bertindih ":" dan nilai. Tajuk yang paling penting diberikan dalam jadual. 1.

Jadual 1

Pengepala protokol HTTP

Tajuk

Tujuan

Tajuk Objek

Menyenaraikan kaedah yang disokong oleh pelayan

Pengekodan Kandungan

Cara badan mesej dikodkan, contohnya untuk mengurangkan saiz

Panjang mesej dalam bait

Jenis kandungan dan mungkin beberapa parameter

Teg sumber unik pada pelayan yang membolehkan anda membandingkan sumber

Tarikh dan masa apabila sumber pada pelayan akan berubah dan perlu diambil semula

Tarikh dan masa kandungan terakhir diubah suai

Tajuk respons

Bilangan saat selepas permintaan mesti diulang untuk mendapatkan kandungan baharu

URI sumber untuk mengakses untuk mendapatkan kandungan

Tarikh dan masa atau bilangan saat selepas itu permintaan mesti diulang untuk mendapatkan respons yang berjaya

Nama perisian pelayan yang menghantar respons

Minta pengepala

Jenis kandungan yang "faham" dan boleh dimainkan oleh pelanggan

Pengekodan aksara di mana pelanggan boleh menerima kandungan teks

Cara pelayan boleh mengekod mesej

Nombor hos dan port dari mana dokumen itu diminta

Jika-Diubahsuai-Sejak

Jika-Tidak Diubah-Sejak

Minta pengepala untuk akses sumber bersyarat

Minta sebahagian daripada dokumen

Nama perisian pelanggan

Tajuk Umum

Menunjukkan pelayan untuk menutup atau mengekalkan-hidup sesi

Tarikh dan masa mesej dijana

Penerangan terperinci tentang pengepala HTTP/1.0 boleh didapati dalam RFC 2068.

Badan mesej mengandungi maklumat sebenar yang dihantar— muatan mesej. Badan mesej ialah urutan oktet (bait). Badan mesej boleh dikodkan, sebagai contoh, untuk mengurangkan jumlah maklumat yang dihantar, dan kaedah pengekodan ditunjukkan dalam pengepala objek Pengekodan Kandungan.

Mesej permintaan daripada klien kepada pelayan terdiri daripada baris permintaan, pengepala (umum, permintaan, objek), dan mungkin badan mesej. Baris permintaan bermula dengan kaedah, diikuti dengan pengecam sumber yang diminta, versi protokol dan aksara akhir baris yang mengekori:

<Метод> <Идентификатор> <Версия HTTP>

Kaedah ini menentukan arahan protokol HTTP untuk digunakan pada sumber yang diminta. Sebagai contoh, kaedah GET menunjukkan bahawa pelanggan ingin mendapatkan semula kandungan sumber. Pengecam mengenal pasti sumber yang diminta. Versi HTTP ditunjukkan oleh baris seperti ini:

HTTP/<версия>.<подверсия>

RFC 2068 memperkenalkan protokol HTTP/1.1.

Mari kita lihat kaedah utama protokol HTTP.

Kaedah OPTIONS meminta maklumat tentang pilihan sambungan (cth, kaedah, jenis dokumen, pengekodan) yang disokong oleh pelayan untuk sumber yang diminta. Kaedah ini membenarkan pelanggan untuk menentukan pilihan dan/atau keperluan yang berkaitan dengan sumber atau keupayaan pelayan tanpa melakukan sebarang tindakan pada sumber atau menyebabkan ia dimuatkan.

Jika respons pelayan bukan mesej ralat, maka pengepala objek mengandungi maklumat yang boleh dianggap sebagai pilihan sambungan. Sebagai contoh, pengepala Benarkan menyenaraikan semua kaedah yang disokong oleh pelayan untuk sumber tertentu.

Jika pengecam sumber yang diminta ialah asterisk (“*”), maka permintaan OPTIONS bertujuan untuk menangani pelayan secara keseluruhan.

Jika ID sumber yang diminta bukan asterisk, maka permintaan OPTIONS digunakan pada pilihan yang tersedia apabila menyambung ke sumber yang ditentukan.

Kaedah GET membolehkan anda mendapatkan sebarang maklumat yang berkaitan dengan sumber yang diminta. Dalam kebanyakan kes, jika ID sumber yang diminta menghala ke dokumen (cth, dokumen HTML, dokumen teks, grafik, video), maka pelayan mengembalikan kandungan dokumen tersebut (kandungan fail). Jika sumber yang diminta ialah aplikasi (program) yang menjana beberapa data semasa operasinya, maka data ini dikembalikan dalam badan mesej respons, dan bukan imej binari bagi fail boleh laku. Ini digunakan, sebagai contoh, semasa membuat aplikasi CGI. Jika pengecam sumber yang diminta menghala ke direktori (direktori, folder), maka, bergantung pada tetapan pelayan, sama ada kandungan direktori (senarai fail) atau kandungan salah satu fail yang terletak dalam direktori ini (biasanya index.html atau Default.htm). Apabila digesa untuk folder, namanya mungkin atau mungkin tidak ditunjukkan dengan "/" di hujungnya. Jika aksara ini tidak terdapat pada penghujung pengecam sumber, pelayan mengeluarkan salah satu respons ubah hala (dengan kod status 301 atau 302).

Satu variasi kaedah GET ialah "GET bersyarat", di mana mesej permintaan termasuk pengepala permintaan If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match atau If-Julat . Kaedah GET bersyarat meminta pemindahan objek hanya jika ia memenuhi syarat yang diterangkan dalam pengepala yang diberikan. Contohnya, jika pengepala If-Modified-Since hadir, kandungan sumber yang diminta akan diambil hanya jika ia tidak berubah sejak titik masa yang ditentukan sebagai nilai pengepala ini. Kaedah GET bersyarat bertujuan untuk mengurangkan beban rangkaian yang tidak perlu, kerana ia mengelakkan muat semula data yang telah disimpan oleh pelanggan.

Terdapat juga "GET separa" di mana mesej permintaan termasuk pengepala permintaan Julat. GET separa meminta supaya hanya sebahagian daripada objek dipindahkan. Kaedah GET separa direka untuk mengurangkan overhed rangkaian yang tidak perlu dengan meminta hanya sebahagian daripada objek apabila bahagian lain telah dimuat turun oleh klien. Nilai pengepala Julat ialah rentetan "bait =" diikuti dengan julat bait untuk diambil semula. Bait dinomborkan bermula dari 0. Bait permulaan dan akhir julat dipisahkan oleh aksara “–”. Kedua-dua bait permulaan dan akhir dalam julat mungkin tiada. Jika anda perlu mendapatkan beberapa julat, ia disenaraikan dipisahkan dengan koma. Jika beberapa julat yang disenaraikan bersilang, pelayan menggabungkannya. Mesej respons untuk permintaan GET separa mesti mengandungi pengepala Julat Kandungan yang menentukan julat yang hendak dilalui. Jika pelayan menghantar berbilang julat tidak bertindih, pengepala Jenis Kandungan mengambil nilai khas "multypart/byteranges". Badan mesej dibahagikan kepada bahagian yang dipisahkan oleh pemisah yang dijana pelayan dan diluluskan sebagai parameter pengepala Jenis Kandungan. Setiap bahagian individu mengandungi pengepala Jenis Kandungan dan Julat Kandungannya sendiri, dengan baris kosong sebelum kandungan julat.

Kaedah HEAD adalah sama dengan GET, kecuali pelayan tidak mengembalikan badan mesej dalam respons. Maklumat yang terkandung dalam pengepala HTTP bagi respons kepada permintaan HEAD adalah sama dengan maklumat yang diberikan sebagai tindak balas kepada permintaan GET untuk sumber yang sama. Kaedah ini boleh digunakan untuk mendapatkan maklumat tentang objek permintaan tanpa terus melalui badan objek. Kaedah HEAD boleh digunakan untuk menguji pautan hiperteks.

Kaedah POST digunakan untuk permintaan di mana pelayan beralamat menerima data yang disertakan dalam badan mesej permintaan (objek) dan menghantarnya kepada aplikasi yang ditentukan sebagai sumber yang diminta untuk pemprosesan. POST direka untuk melaksanakan fungsi berikut secara umum:

anotasi sumber sedia ada;

menghantar mesej ke sistem papan buletin (BBS), kumpulan berita, senarai mel atau kumpulan artikel yang serupa;

memindahkan blok data, contohnya hasil input dalam bentuk, kepada proses pemprosesan;

pelaksanaan pertanyaan kepada pangkalan data (DB);

Malah, fungsi yang dilakukan oleh kaedah POST ditentukan oleh aplikasi yang ditunjukkan oleh ID sumber yang diminta. Bersama kaedah GET, kaedah POST digunakan semasa membuat aplikasi CGI. Penyemak imbas boleh mengeluarkan permintaan dengan kaedah POST semasa menyerahkan borang. Untuk melakukan ini, elemen FORM dokumen HTML yang mengandungi borang mesti mempunyai atribut kaedah dengan nilai POST.

Aplikasi yang dimulakan oleh POST boleh melakukan tindakan pada pelayan dan tidak mengembalikan sebarang kandungan sebagai hasilnya. Bergantung pada sama ada respons termasuk badan mesej yang menerangkan hasil atau tidak, kod status dalam respons boleh sama ada 200 (OK) atau 204 (Tiada Kandungan).

Jika sumber pada pelayan telah dibuat, respons mengandungi kod status 201 (Dibuat) dan termasuk pengepala respons Lokasi.

Badan mesej yang dihantar dalam permintaan PUT disimpan pada pelayan, dan pengecam sumber yang diminta akan menjadi pengecam dokumen yang disimpan. Jika pengecam sumber yang diminta menunjuk kepada sumber yang sedia ada, maka objek yang disertakan dalam badan mesej dianggap sebagai versi diubah suai sumber yang terletak pada pelayan. Jika sumber baharu dicipta, pelayan memberitahu ejen pengguna dengan membalas dengan kod status 201 (Dicipta).

Perbezaan antara kaedah POST dan PUT ialah nilai ID yang berbeza bagi sumber yang diminta. URI dalam permintaan POST mengenal pasti sumber yang memproses objek yang disertakan dalam badan mesej. Sumber ini boleh menjadi aplikasi yang menerima data. Sebaliknya, URI dalam permintaan PUT mengenal pasti entiti yang disertakan dalam permintaan sebagai badan mesej, iaitu, ejen pengguna memperuntukkan URI yang diberikan kepada sumber yang disertakan.

Kaedah DELETE meminta pelayan untuk memadamkan sumber yang mempunyai ID yang diminta. Permintaan dengan kaedah ini mungkin ditolak oleh pelayan jika pengguna tidak mempunyai hak untuk memadamkan sumber yang diminta.

Kaedah TRACE digunakan untuk mengembalikan permintaan yang dihantar pada tahap protokol HTTP. Penerima permintaan (pelayan Web) menghantar semula mesej yang diterima kepada klien sebagai badan mesej respons dengan kod status 200 (OK). Permintaan TRACE tidak boleh mengandungi badan mesej.

TRACE membolehkan pelanggan melihat apa yang pelayan terima di hujung yang lain dan menggunakan data ini untuk ujian atau diagnostik.

Jika permintaan itu berjaya, respons mengandungi keseluruhan mesej permintaan dalam badan mesej respons dan pengepala objek Jenis Kandungan ialah "mesej/http".

Maklumat terperinci tentang kaedah protokol HTTP/1.1 boleh didapati dalam RFC 2068.

Selepas menerima dan mentafsir mesej permintaan, pelayan bertindak balas dengan mesej respons HTTP.

Baris pertama respons ialah Talian Status. Ia terdiri daripada versi protokol, kod status berangka, frasa penjelasan, dipisahkan dengan ruang dan aksara hujung baris mengekori:

<Версия HTTP> <Код состояния> <Поясняющая фраза>

Versi protokol mempunyai makna yang sama seperti dalam permintaan.

Elemen Kod Status ialah kod tiga digit (tiga digit) integer untuk hasil pemahaman dan memenuhi permintaan. Frasa Sebab ialah penerangan teks pendek bagi kod status. Kod status bertujuan untuk diproses oleh perisian, dan frasa penjelasan bertujuan untuk pengguna.

Digit pertama kod status menentukan kelas respons. Dua digit terakhir tidak mempunyai peranan khusus dalam pengelasan. Terdapat 5 makna bagi digit pertama:

1xx: Kod maklumat – permintaan diterima, pemprosesan diteruskan.

2xx: Kod yang berjaya - tindakan telah berjaya diterima, difahami dan diproses.

3xx: Ubah hala kod - tindakan lanjut mesti diambil untuk melengkapkan permintaan.

4xx: Kod ralat pelanggan - permintaan mempunyai ralat sintaks atau tidak dapat diselesaikan.

5xx: Kod Ralat Pelayan - Pelayan tidak dapat menyelesaikan permintaan yang sah.

Frasa penjelasan untuk setiap kod status disenaraikan dalam RFC 2068 dan disyorkan, tetapi boleh digantikan dengan yang setara tanpa sekatan protokol. Contohnya, dalam versi pelayan HTTP bahasa Rusia yang disetempatkan, frasa ini digantikan dengan yang Rusia. Dalam jadual 2 menunjukkan kod respons pelayan HTTP.

jadual 2

Kod tindak balas pelayan HTTP

Frasa penerang mengikut

1xx: Kod maklumat

teruskan

2xx: Kod yang berjaya

Tiada isi kandungan

Tetapkan Semula Kandungan

Kandungan Separa

Kandungan separa

3xx: Ubah hala kod

Bergerak Sementara

Bergerak buat sementara waktu

Tidak diubah suai

4xx: Kod ralat pelanggan

Permintaan buruk

tanpa kebenaran

Tidak ditemui

Kaedah Tidak Dibenarkan

Kaedah tidak dibenarkan

Permintaan tamat masa

Permintaan tamat masa

Konflik

Panjang Diperlukan

Panjang diperlukan

Minta Entiti Terlalu Besar

Objek permintaan terlalu besar

Hujung meja. 2

Frasa penerang mengikut

Frasa penjelasan yang setara dalam bahasa Rusia

5xx: Kod ralat pelayan

Ralat Pelayan Dalaman

Ralat Pelayan Dalaman

Tidak dilaksanakan

Tidak dilaksanakan

Perkhidmatan Tidak Tersedia

Perkhidmatan tidak tersedia

Versi HTTP Tidak Disokong

Tidak disokong versi HTTP

Maklumat terperinci tentang kod respons dan pengepala yang mengiringi respons ini boleh didapati dalam RFC 2068.

Baris status diikuti oleh pengepala (umum, respons dan objek) dan mungkin badan mesej.

Salah satu fungsi terpenting pelayan Web ialah menyediakan akses kepada sebahagian daripada sistem fail tempatan. Untuk melakukan ini, direktori tertentu ditentukan dalam tetapan pelayan, yang merupakan direktori akar untuk pelayan Web ini. Untuk menerbitkan dokumen, iaitu, untuk menyediakannya kepada pengguna yang "melawat" pelayan ini (menyambungkannya melalui HTTP), anda perlu menyalin dokumen ini ke direktori akar pelayan Web atau ke salah satu subdirektorinya. Apabila menyambung melalui HTTP, proses dibuat pada pelayan dengan hak pengguna, yang, sebagai peraturan, tidak benar-benar wujud, tetapi dicipta khas untuk melihat sumber pelayan. Dengan mengkonfigurasi hak dan kebenaran pengguna tertentu, anda boleh mengawal akses kepada sumber Web.