JavaRush /Blog Jawa /Random-JV /Part 3. protokol HTTP/HTTPS

Part 3. protokol HTTP/HTTPS

Diterbitake ing grup
Materi iki minangka bagéan saka seri "Introduction to Enterprise Development". Artikel sadurunge: Hello! Dina iki kita bakal ngerti protokol HTTP lan HTTPS. Nanging pisanan, ayo njlentrehake siji titik: kita ngomong babagan protokol transfer data liwat jaringan ing lapisan aplikasi model OSI. Nalika sampeyan ngelingi, kita ngrembug model OSI ing salah sawijining artikel sadurunge. Lan yen sampeyan ora ngelingi, iki . Bagean 3. Protokol HTTP/HTTPS - 1

Apa protokol transfer data

Iki minangka jeneng sing diwenehake kanggo persetujuan sing ditampa kanthi umum, amarga pangembang layanan sing beda ngirim informasi ing wangun siji. Contone, nggunakake Google Chrome, sampeyan bisa entuk informasi saka Facebook lan Twitter, amarga pangembang ngirimake nggunakake protokol HTTP standar, lan browser sampeyan bisa nangani. Aturan seragam uga trep banget kanggo pangembang sisih server dhewe: ana akeh perpustakaan sing bisa ngowahi informasi kanggo sampeyan lan ngirim nggunakake protokol sing dibutuhake. HTTP wiwitane disusun minangka protokol kanggo nransfer kaca HTML. Iki wis suwe, nanging saiki programer asring nransfer senar lan file media. Sakabèhé, protokol iki serbaguna lan fleksibel, lan pancen gampang digunakake. Saiki ayo ngerteni carane nindakake iki.

struktur HTTP

Perlu dicathet yen protokol HTTP mung kalebu teks. Inggih, kita paling kasengsem ing struktur ing ngendi teks iki dumunung. Saben pesen kasusun saka telung bagean:
  1. Baris wiwitan-nemtokake data layanan.
  2. Header - katrangan paramèter pesen.
  3. Awak pesen (Body) - data pesen. Kudu dipisahake saka judhul kanthi baris kosong.
Nggunakake protokol HTTP, sampeyan bisa ngirim panjalukan menyang server (request) lan nampa respon saka server (respon). Panjaluk lan tanggapan duwe paramèter sing rada beda.

Kaya apa panjalukan HTTP sing prasaja

GET / HTTP/1.1
Host: javarush.com
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Baris wiwitan ngandhut:
  • GET - cara panyuwunan;
  • / — njaluk path (path);
  • HTTP/1.1 - versi protokol transfer data.
Banjur tindakake judhul:
  • Host - tuan rumah sing dijaluk ditujokake;
  • Agen pangguna yaiku klien sing ngirim panjaluk.
Ora ana badan pesen. Ing panjalukan HTTP, mung baris wiwitan lan header Host sing dibutuhake. Saiki ayo ndeleng kabeh kanthi urut. Panjaluk HTTP kudu ngemot sawetara cara. Ana total sanga: GET, POST, PUT, OPTIONS, HEAD, PATCH, DELETE, TRACE, CONNECT. Sing paling umum yaiku GET lan POST. Cara loro iki bakal cukup ing wiwitan. GET - njaluk isi saka server. Mulane, panjalukan kanthi metode GET ora duwe awak pesen. Nanging yen perlu, sampeyan bisa ngirim paramèter liwat path ing format iki: https://cdn.javarush.com/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2 Kene: javarush .com — host, / send — request path, ? - pemisah nuduhake yen paramèter request tindakake. Ing pungkasan, paramèter kasebut kadhaptar ing format tombol = nilai, dipisahake karo ampersand. POST - nerbitake informasi ing server. Panjaluk POST bisa nransfer macem-macem informasi: parameter ing format key=value, JSON, kode HTML, utawa malah file. Kabeh informasi ditularaké ing awak pesen. Tuladhane:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: javarush.com

{
  "Id": 12345,
  "User": "John"
}
Panjaluk kasebut dikirim menyang javarush.com/user/create/json, versi protokol yaiku HTTP/1.1. Nampa nemtokake format respon apa sing dikarepake klien, Tipe-Konten nemtokake format apa sing dikirim ing awak pesen. Isi-Length - jumlah karakter ing awak. Panjaluk HTTP bisa ngemot akeh header sing beda. Rincian liyane bisa ditemokake ing spesifikasi protokol .

Respon HTTP

Sawise nampa panjaluk kasebut, server ngolah lan ngirim tanggapan menyang klien:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98

<html>
  <head>
    <title>An Example Page</title>
  </head>
  <body>
    <p>Hello World</p>
  </body>
</html>
Baris wiwitan ing respon ngemot versi protokol (HTTP/1.1), Kode Status (200), Katrangan Status (OK). Judhul nuduhake jinis lan dawa isi. Badan respon ngemot kode HTML sing bakal digambar browser menyang kaca HTML.

Kode Status Tanggapan

Kabeh iku cetha karo awak pesen lan header, nanging iku worth ngandika sawetara tembung bab kode status. Kode Status Respon tansah telung digit, lan digit pisanan saka kode nuduhake kategori respon:
  • 1xx - informasi. Panyuwunan wis ditampa, server siap nerusake;
  • 2xx - sukses. Panyuwunan wis ditampa, dimangerteni lan diproses;
  • 3xx - pangalihan. Langkah-langkah ing ngisor iki kudu ditindakake kanggo ngolah panyuwunan;
  • 4xx - kesalahan klien. Panjaluk kasebut ngemot kasalahan utawa ora tundhuk karo protokol;
  • 5xx - kesalahan server. Server ora bisa ngolah panjaluk kasebut, sanajan wis disusun kanthi bener;
Digit nomer loro lan katelu ing kode rinci jawaban. Tuladhane:
  • 200 OK - panjalukan ditampa lan kasil diproses;
  • 201 Digawe - panjalukan ditampa lan kasil diproses, nyebabake nggawe sumber daya anyar utawa contone;
  • 301 Dipindhah Permanen - sumber daya sing dijaluk wis dipindhah kanthi permanen, lan panjalukan sabanjure kudu ditindakake ing alamat anyar;
  • 307 Temporary Redirect - sumber daya wis dipindhah sementara. Saiki, sampeyan bisa ngakses kanthi nggunakake pangalihan otomatis;
  • 403 Dilarang - panjaluk kasebut jelas, nanging wewenang dibutuhake;
  • 404 Ora Ditemokake - server ora nemokake sumber daya ing alamat iki;
  • 501 Ora Dilaksanakake - server ora ndhukung fungsi kanggo nanggapi panjalukan iki;
  • 505 Versi HTTP Ora Didhukung - server ora ndhukung versi protokol HTTP sing ditemtokake.
Saliyane kode status respon, deskripsi status uga dikirim, nggawe intuisi kanggo mangerteni apa tegese status tartamtu. Protokol HTTP praktis banget: nyedhiyakake akeh header, kanthi nggunakake sampeyan bisa nyetel komunikasi fleksibel antarane klien lan server. Kabeh header panjalukan lan respon, cara panjalukan lan kode status respon ora bisa dianggep ing siji artikel. Yen perlu, sampeyan bisa maca spesifikasi protokol resmi , sing nggambarake kabeh nuansa. Protokol HTTP biasane digunakake ing port 80, dadi yen sampeyan ndeleng alamat sing rampung ing port 80, sampeyan bisa yakin manawa alamat kasebut kudu diakses liwat HTTP. Kanthi pangembangan teknologi lan gerakan aktif data pribadhi ing Internet, kita kudu mikir babagan carane menehi perlindungan tambahan kanggo informasi sing dikirimake klien menyang server. Asil ana protokol HTTPS.

Apa bedane antarane HTTPS lan HTTP

HTTPS sintaksis identik karo protokol HTTP, yaiku, nggunakake garis wiwitan lan header sing padha. Bedane mung enkripsi tambahan lan port standar (443) . HTTPS dienkripsi ing antarane HTTP lan TCP, yaiku ing antarane aplikasi lan lapisan transportasi. Yen sampeyan lali apa iku, deleng artikel babagan model OSI . Standar enkripsi modern yaiku TLS. Kita ora bakal jero banget babagan topik iki, nanging elinga yen enkripsi kedadeyan sadurunge informasi kasebut tekan lapisan transportasi . HTTPS encrypts pancen kabeh informasi kajaba host lan port sing panjalukan dikirim. Kanggo ngalih server nggunakake protokol HTTPS tinimbang HTTP, kita ora perlu ngganti kode server. Fitur iki diaktifake ing kontaner servlet, sing bakal kita bahas ing artikel ing ngisor iki. Sing kabeh kanggo dina iki. Nanging ngenteni sedhela. Kanggo ngerteni panjaluk HTTP, bukak Google Chrome, penet F12, pilih tab Jaringan. Kabeh panjalukan lan tanggapan sing dikirim/ditampa dening browser sampeyan bakal ditampilake ing kene. Part 4. Maven dhasar Part 5. Servlets. Nulis aplikasi web sing prasaja Part 6. Wadah Servlet Part 7. Ngenalake pola MVC (Model-View-Controller) Part 8. Nulis aplikasi spring-boot cilik
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION