Materi ini merupakan bagian dari seri “Pengantar Pengembangan Usaha”. Artikel sebelumnya:
Halo! Hari ini kita akan memahami protokol HTTP dan HTTPS. Tapi pertama-tama, mari kita perjelas satu hal: kita berbicara tentang protokol transfer data melalui jaringan pada lapisan aplikasi model OSI. Seperti yang Anda ingat, kita telah membahas model OSI di salah satu artikel sebelumnya. Dan jika Anda tidak ingat, ini dia .
Perlu segera dicatat bahwa protokol HTTP hanya terdiri dari teks. Ya, kami paling tertarik pada struktur di mana teks ini berada. Setiap pesan terdiri dari tiga bagian:
Apa itu protokol transfer data
Ini adalah nama yang diberikan untuk perjanjian yang diterima secara umum, berkat pengembang berbagai layanan mengirimkan informasi dalam satu bentuk. Misalnya, dengan menggunakan Google Chrome, Anda bisa mendapatkan informasi dari Facebook dan Twitter, karena pengembang mengirimkannya menggunakan protokol HTTP standar, dan browser Anda dapat menanganinya. Aturan seragam juga sangat nyaman bagi pengembang sisi server itu sendiri: ada banyak perpustakaan yang dapat mengonversi informasi untuk Anda dan mengirimkannya menggunakan protokol yang diperlukan. HTTP pada awalnya dipahami sebagai protokol untuk mentransfer halaman HTML. Hal ini telah terjadi sejak lama, tetapi sekarang pemrogram sering mentransfer string dan file media melaluinya. Secara keseluruhan, protokol ini serbaguna dan fleksibel, serta sangat mudah digunakan. Sekarang mari kita cari tahu cara melakukan ini.
Struktur HTTP
Perlu segera dicatat bahwa protokol HTTP hanya terdiri dari teks. Ya, kami paling tertarik pada struktur di mana teks ini berada. Setiap pesan terdiri dari tiga bagian:
- Garis awal—mendefinisikan data layanan.
- Header - deskripsi parameter pesan.
- Badan pesan (Body) - data pesan. Harus dipisahkan dari judul dengan baris kosong.
Seperti apa permintaan HTTP sederhana itu
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 awal berisi:
- DAPATKAN - metode permintaan;
- / — jalur permintaan (jalur);
- HTTP/1.1 - versi protokol transfer data.
- Host — host yang menjadi tujuan permintaan;
- Agen-Pengguna adalah klien yang mengirimkan permintaan.
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: javarush.com
{
"Id": 12345,
"User": "John"
}
Permintaan dikirim ke javarush.com/user/create/json, versi protokolnya adalah HTTP/1.1. Accept menentukan format respons apa yang diharapkan diterima oleh klien, Content-Type menentukan format isi pesan yang dikirim. Panjang Konten - jumlah karakter di badan. Permintaan HTTP dapat berisi banyak header berbeda. Rincian lebih lanjut dapat ditemukan di 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 dalam respons berisi versi protokol (HTTP/1.1), Kode Status (200), Deskripsi Status (OK). Judul menunjukkan jenis dan panjang konten. Badan respons berisi kode HTML yang akan digambar browser ke dalam halaman HTML.
Kode Status Respons
Semuanya jelas dengan isi pesan dan header, tetapi ada baiknya menyampaikan beberapa kata tentang kode status. Kode Status Respons selalu terdiri dari tiga digit, dan digit pertama kode menunjukkan kategori respons:- 1xx - informasional. Permintaan telah diterima, server siap melanjutkan;
- 2xx - berhasil. Permintaan telah diterima, dipahami dan diproses;
- 3xx - pengalihan. Langkah-langkah berikut harus dilakukan untuk memproses permintaan;
- 4xx - kesalahan klien. Permintaan mengandung kesalahan atau tidak sesuai dengan protokol;
- 5xx - kesalahan server. Server tidak dapat memproses permintaan, meskipun permintaan tersebut dibuat dengan benar;
- 200 OK — permintaan diterima dan berhasil diproses;
- 201 Dibuat — permintaan diterima dan berhasil diproses, menghasilkan terciptanya sumber daya baru atau instance-nya;
- 301 Dipindahkan Secara Permanen - sumber daya yang diminta telah dipindahkan secara permanen, dan permintaan selanjutnya harus dilakukan di alamat baru;
- 307 Pengalihan Sementara - sumber daya telah dipindahkan sementara. Untuk saat ini, Anda dapat mengaksesnya menggunakan pengalihan otomatis;
- 403 Dilarang - permintaannya jelas, tetapi diperlukan otorisasi;
- 404 Not Found - server tidak menemukan sumber daya di alamat ini;
- 501 Tidak Diimplementasikan - server tidak mendukung fungsionalitas untuk menanggapi permintaan ini;
- 505 Versi HTTP Tidak Didukung - server tidak mendukung versi protokol HTTP yang ditentukan.
GO TO FULL VERSION