Materi iki minangka bagéan saka seri "Introduction to Enterprise Development". Artikel sadurunge:
Hi! 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:- Baris wiwitan - Iki nemtokake sawetara data housekeeping.
- Header - Iki nggambarake paramèter pesen.
- Awak - Iki isi pesen. Awak kudu dipisahake saka header kanthi baris kosong.
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
- Host - Tuan rumah sing njaluk panjaluk
- Agen pangguna - Klien sing ngirim panjaluk
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.
- 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.