Materi ini merupakan bagian dari seri "Pengantar Pengembangan Usaha". Artikel sebelumnya:
Hai! Hari ini kita akan belajar tentang protokol HTTP dan HTTPS. Tapi pertama-tama, mari kita perjelas satu hal: kita berbicara tentang protokol untuk mengirim data melalui jaringan pada tingkat aplikasi model OSI. Anda mungkin ingat bahwa kita mengenal model OSI di salah satu artikel sebelumnya. Jika Anda tidak ingat itu, ini dia .
Protokol HTTP sangat praktis: menyediakan sejumlah besar header, yang dapat Anda gunakan untuk mengatur komunikasi yang sangat fleksibel antara klien dan server. Pertimbangan penuh dari semua header permintaan dan respons, metode permintaan, dan kode status respons akan terlalu banyak untuk satu artikel. Jika perlu, Anda dapat membaca spesifikasi resmi protokol, yang menjelaskan semua nuansa. Merupakan kebiasaan untuk menggunakan protokol HTTP pada port 80, jadi ketika Anda melihat URL yang diakhiri dengan port 80, Anda dapat yakin bahwa Anda perlu menggunakan HTTP untuk mengaksesnya. Ketika teknologi berkembang dan data pribadi mulai dikirim melalui Internet, perlu dipikirkan tentang bagaimana memberikan perlindungan tambahan untuk informasi yang dikirim klien ke server. Hasil dari pemikiran ini adalah protokol HTTPS.

Apa itu protokol komunikasi data?
Inilah yang kami sebut seperangkat aturan yang disepakati yang memungkinkan pengembang berbagai layanan mengirimkan informasi dalam format yang dapat dipahami orang lain. Misalnya, Anda dapat menggunakan Google Chrome untuk mendapatkan informasi dari Facebook dan Twitter, karena pengembang mengirimkannya menggunakan protokol HTTP standar, yang memungkinkan browser Anda memprosesnya. Aturan seragam sangat nyaman bagi orang-orang yang mengembangkan bagian server: ada banyak perpustakaan yang dapat mengonversi informasi untuk Anda dan mengirimkannya menggunakan protokol yang sesuai. HTTP awalnya disusun sebagai protokol untuk mengirim halaman HTML. Begitulah cara ini digunakan untuk waktu yang lama, tetapi sekarang pemrogram sering menggunakannya untuk mengirim string dan file media. Secara umum, protokol ini diterima secara universal dan serbaguna, dan sangat mudah digunakan. Dan sekarang kita akan menyelidiki cara menggunakannya.Struktur HTTP
Kami harus segera mencatat bahwa protokol HTTP hanya terdiri dari teks. Yang paling menarik bagi kami adalah struktur teks ini. Setiap pesan terdiri dari tiga bagian:- Garis awal — Ini mendefinisikan beberapa data tata graha.
- Header — Ini menjelaskan parameter pesan.
- Isi — Ini adalah isi pesan. Badan harus dipisahkan dari header dengan baris kosong.
Berikut tampilan permintaan HTTP sederhana:
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 start menunjukkan:
- GET — Metode permintaan
- / — Jalur permintaan
- HTTP/1.1 — Versi protokol
- Host — Host tempat permintaan ditujukan
- User-Agent — Klien mengirimkan permintaan
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
di mana codegym.cc adalah tuan rumah, /send adalah jalur permintaan, dan ? adalah pemisah yang menunjukkan bahwa parameter kueri mengikuti. Di bagian akhir, pasangan kunci-nilai ("key=value") dicantumkan, dipisahkan dengan ampersand. POST — Metode ini menerbitkan informasi di server. Permintaan POST dapat mengirim berbagai jenis informasi: parameter sebagai pasangan "key=value", JSON, kode HTML, atau bahkan file. Semua informasi dikirim dalam isi pesan. Misalnya:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
Permintaan dikirim ke codegym.cc/user/create/json, dan versi protokolnya adalah HTTP/1.1. "Terima" menunjukkan format respons yang diharapkan diterima klien. "Content-Type" menunjukkan format badan pesan yang dikirim dalam permintaan. "Panjang Konten" adalah jumlah karakter dalam isi. Permintaan HTTP dapat berisi banyak header yang berbeda. Untuk informasi lebih lanjut, lihat spesifikasi protokol .
Respons HTTP
Setelah menerima permintaan, server memprosesnya dan mengirimkan respons ke 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 awal respons berisi versi protokol (HTTP/1.1), kode status (200), dan deskripsi status (OK). Headernya mencakup jenis dan panjang konten. Badan respons berisi kode HTML yang dirender browser sebagai halaman HTML.
Kode status respons
Semuanya jelas mengenai badan pesan dan tajuk, tetapi kami harus mengatakan beberapa patah kata tentang kode status. Kode status respons selalu tiga digit. Digit pertama kode menunjukkan kategori respons:- 1xx — Informasi. Permintaan itu diterima. Server siap melanjutkan.
- 2xx — Berhasil. Permintaan diterima, dipahami, dan diproses.
- 3xx — Pengalihan. Tindakan tambahan harus dilakukan untuk memproses permintaan.
- 4xx — Kesalahan Klien. Permintaan mengandung kesalahan atau tidak sesuai dengan protokol.
- 5xx — Kesalahan Server. Permintaan disusun dengan benar, tetapi server tidak dapat memprosesnya.
- 200 OK — Permintaan telah diterima dan berhasil diproses.
- 201 Dibuat — Permintaan diterima dan berhasil diproses, menghasilkan pembuatan sumber daya atau instans baru.
- 301 Dipindahkan Secara Permanen — Sumber daya yang diminta dipindahkan secara permanen. Permintaan selanjutnya harus dibuat menggunakan alamat baru.
- 307 Pengalihan Sementara — Sumber daya telah dipindahkan sementara. Untuk saat ini, dapat diakses menggunakan penerusan otomatis.
- 403 Terlarang — Permintaan dipahami, tetapi diperlukan otorisasi.
- 404 Tidak Ditemukan — Server tidak menemukan sumber daya di alamat ini.
- 501 Tidak Diimplementasikan — Server tidak mendukung fungsionalitas yang diperlukan untuk merespons permintaan.
- 505 Versi HTTP Tidak Didukung — Server tidak mendukung versi protokol HTTP yang ditentukan.
GO TO FULL VERSION