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 .
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