KodeGym/Blog Jawa/Acak/Part 3. HTTP / HTTPS
John Squirrels
tingkat
San Francisco

Part 3. HTTP / HTTPS

Diterbitake ing grup
Materi iki minangka bagéan saka seri "Introduction to Enterprise Development". Artikel sadurunge: Bagean 3. HTTP/HTTPS - 1Hi! Dina iki kita bakal sinau babagan protokol HTTP lan HTTPS. Nanging pisanan, ayo njlentrehake siji titik: kita ngomong babagan protokol kanggo ngirim data liwat jaringan ing tingkat aplikasi model OSI. Sampeyan bisa uga kelingan manawa kita wis ngerti model OSI ing salah sawijining artikel sadurunge. Yen sampeyan ora ngelingi, iki .

Apa iku protokol komunikasi data?

Iki sing diarani aturan sing disepakati sing ngidini pangembang layanan sing beda-beda ngirim informasi kanthi format sing bisa dingerteni wong liya. Contone, sampeyan bisa nggunakake Google Chrome kanggo entuk informasi saka Facebook lan Twitter, amarga pangembang ngirim nggunakake protokol HTTP standar, sing ngidini browser sampeyan ngolah. Aturan seragam trep banget kanggo wong sing ngembangake bagean server: ana akeh perpustakaan sing bisa ngowahi informasi kanggo sampeyan lan ngirim nggunakake protokol sing cocog. HTTP wiwitane disusun minangka protokol kanggo ngirim kaca HTML. Sing cara iki digunakake kanggo dangu, nanging saiki programer asring digunakake kanggo ngirim loro strings lan file media. Umumé, protokol iki ditampa sacara universal lan serba guna, lan pancen gampang digunakake. Lan saiki kita bakal nliti cara nggunakake.

Struktur HTTP

Kita kudu eling yen protokol HTTP mung kalebu teks. Sing paling menarik kanggo kita yaiku struktur teks iki. Saben pesen kasusun saka telung bagean:
  1. Baris wiwitan - Iki nemtokake sawetara data housekeeping.
  2. Header - Iki nggambarake paramèter pesen.
  3. Awak - Iki isi pesen. Awak kudu dipisahake saka header kanthi baris kosong.
Protokol HTTP digunakake kanggo ngirim panjalukan menyang server lan nampa respon saka server. Parameter panjalukan lan respon rada beda.

Mangkene panjaluk HTTP sing prasaja:

GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Garis wiwitan nuduhake:
  • GET - Cara panyuwunan
  • / - Panyuwunan path
  • HTTP / 1.1 - Versi protokol
Banjur teka header:
  • Host - Tuan rumah sing njaluk panjaluk
  • Agen pangguna - Klien sing ngirim panjaluk
Badan pesen ilang. Ing panjalukan HTTP, mung baris wiwitan lan header "Host" sing dibutuhake. Saiki ayo ndeleng kabeh siji-sijine. Panjaluk HTTP kudu ngemot sawetara cara. Ana sangang: GET, POST, PUT, OPTIONS, HEAD, PATCH, DELETE, TRACE, CONNECT. Sing paling umum yaiku GET lan POST. Cara loro iki bakal cukup ing wiwitan. GET - Cara iki njaluk isi saka server. Patut, panjalukan nganggo metode GET ora duwe awak pesen. Nanging yen perlu, sampeyan bisa ngliwati paramèter liwat path (ing baris wiwitan) ing format ing ngisor iki:
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
ngendi codegym.cc inang, / ngirim path request, lan ? minangka separator sing nuduhake yen paramèter query tindakake. Ing pungkasan, pasangan kunci-nilai ("kunci = nilai") kadhaptar, dipisahake karo ampersand. POST - Cara iki nerbitake informasi ing server. Panjaluk POST bisa ngirim macem-macem jinis informasi: paramèter minangka pasangan "key = value", JSON, kode HTML, utawa malah file. Kabeh informasi dikirim ing awak pesen. Tuladhane:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc

{
  "Id": 12345,
  "User": "John"
}
Panjaluk kasebut dikirim menyang codegym.cc/user/create/json, lan versi protokol yaiku HTTP/1.1. "Nampa" nuduhake format respon sing dikarepake klien. "Content-Type" nuduhake format awak pesen sing dikirim ing panyuwunan. "Content-Length" yaiku jumlah karakter ing awak. Panjaluk HTTP bisa ngemot akeh header sing beda. Kanggo informasi luwih lengkap, deleng spesifikasi protokol .

Respon HTTP

Sawise nampa panjalukan, server ngolah lan ngirim respon 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 respon ngemot versi protokol (HTTP/1.1), kode status (200), lan deskripsi status (OK). Header kalebu jinis lan dawa isi. Badan respon ngemot kode HTML sing browser render minangka kaca HTML.

Kode status respon

Kabeh wis jelas babagan isi lan header pesen, nanging kita kudu ngomong sawetara tembung babagan kode status. Kode status respon tansah telung digit. Digit pisanan saka kode nuduhake kategori respon:
  • 1xx - Informasional. Panyuwunan kasebut ditampa. Server siyap nerusake.
  • 2xx - Sukses. Panjaluk kasebut ditampa, dimangerteni lan diproses.
  • 3xx - Pangalihan. Tindakan tambahan kudu ditindakake kanggo ngolah panjaluk kasebut.
  • 4xx - Kasalahan Klien. Panjaluk kasebut ngemot kesalahan utawa ora tundhuk karo protokol kasebut.
  • 5xx - Kasalahan Server. Panjaluk kasebut digawe kanthi bener, nanging server ora bisa ngolah.
Angka kapindho lan katelu ing kode kasebut nuduhake respon sing luwih spesifik. Tuladhane:
  • 200 OK - Panjaluk kasebut ditampa lan kasil diproses.
  • 201 Digawe - Panjaluk kasebut ditampa lan kasil diproses, nyebabake nggawe sumber daya utawa conto anyar.
  • 301 Dipindhah Permanen - Sumber daya sing dijaluk dipindhah kanthi permanen. Panjaluk sabanjure kudu nggunakake alamat anyar.
  • 307 Temporary Redirect — Sumber daya wis dipindhah sauntara. Saiki, bisa diakses kanthi nggunakake penerusan otomatis.
  • 403 Dilarang - Panjaluk kasebut dimangerteni, nanging wewenang dibutuhake.
  • 404 Ora Ditemokake — Server ora nemokake sumber daya ing alamat iki.
  • 501 Ora Dilaksanakake - Server ora ndhukung fungsi sing dibutuhake kanggo nanggapi panjaluk kasebut.
  • Versi HTTP 505 Ora Didhukung - Server ora ndhukung versi protokol HTTP sing ditemtokake.
Saliyane kode status respon, deskripsi status uga dikirim. Iki mbantu njlentrehake apa tegese saben status tartamtu. Protokol HTTP praktis banget: nyedhiyakake akeh header, sing bisa digunakake kanggo ngatur komunikasi sing fleksibel antarane klien lan server. Pertimbangan lengkap kabeh header panjalukan lan respon, metode panyuwunan, lan kode status respon bakal kakehan kanggo artikel siji. Yen perlu, sampeyan bisa maca spesifikasi resmi protokol kasebut, sing nggambarake kabeh nuansa. Biasane nggunakake protokol HTTP ing port 80, dadi yen sampeyan ndeleng URL sing diakhiri karo port 80, sampeyan bisa yakin yen sampeyan kudu nggunakake HTTP kanggo ngakses. Nalika teknologi berkembang lan data pribadhi wiwit dikirim liwat Internet, mula kudu dipikirake babagan carane menehi perlindungan tambahan kanggo informasi sing dikirim klien menyang server. Asil saka pamikiran iki yaiku protokol HTTPS.

Bentenipun antarane HTTPS lan HTTP

Ing babagan sintaks, HTTPS 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 tegese, priksa artikel babagan model OSI . Standar enkripsi saiki yaiku TLS. Kita ora bakal akeh banget babagan topik iki, nanging elinga yen enkripsi kedadeyan sadurunge informasi tekan lapisan transportasi. Ing HTTPS, pancen kabeh informasi dienkripsi, kajaba kanggo host lan port ing ngendi panjaluk kasebut dikirim. Ngalih server nggunakake protokol HTTPS tinimbang HTTP ora mbutuhake panggunaan kanggo ngganti kode server. Fitur iki diaktifake ing wadhah servlet, sing bakal kita bahas ing artikel sabanjure. Lan iku kabeh kanggo dina iki. Bener, ngenteni sedhela. Kanggo njaluk sawetara panjalukan HTTP, bukak Google Chrome, penet F12, banjur pilih tab "Jaringan". Kabeh panjaluk lan tanggapan sing dikirim / ditampa dening browser sampeyan bakal ditampilake ing kene. Part 4. Dasar Maven Part 5. Servlets lan Java Servlet API. Nulis aplikasi web sing prasaja Part 6. Wadah Servlet Part 7. Ngenalake pola MVC (Model-View-Controller)
Komentar
  • Popular
  • Anyar
  • lawas
Sampeyan kudu mlebu kanggo ninggalake komentar
Kaca iki durung duwe komentar