HTTP - Pesan

HTTP didasarkan pada model arsitektur klien-server dan protokol permintaan / respons stateless yang beroperasi dengan bertukar pesan melalui koneksi TCP / IP yang andal.

"Klien" HTTP adalah program (browser web atau klien lain) yang membuat sambungan ke server untuk tujuan mengirim satu atau lebih pesan permintaan HTTP. "Server" HTTP adalah program (umumnya server web seperti Apache Web Server atau Internet Information Services IIS, dll.) Yang menerima koneksi untuk melayani permintaan HTTP dengan mengirimkan pesan tanggapan HTTP.

HTTP menggunakan Uniform Resource Identifier (URI) untuk mengidentifikasi sumber daya yang diberikan dan untuk membuat sambungan. Setelah koneksi dibuat,HTTP messagesdikirimkan dalam format yang mirip dengan yang digunakan oleh email Internet [RFC5322] dan Multipurpose Internet Mail Extensions (MIME) [RFC2045]. Pesan-pesan ini termasukrequests dari klien ke server dan responses dari server ke klien yang akan memiliki format berikut:

HTTP-message   = <Request> | <Response> ; HTTP/1.1 messages

Permintaan HTTP dan tanggapan HTTP menggunakan format pesan umum RFC 822 untuk mentransfer data yang diperlukan. Format pesan umum ini terdiri dari empat item berikut.

  • A Start-line
  • Zero or more header fields followed by CRLF
  • An empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header fields
  • Optionally a message-body

Di bagian berikut, kami akan menjelaskan setiap entitas yang digunakan dalam pesan HTTP.

Pesan Start-Line

Garis-awal akan memiliki sintaks umum berikut:

start-line = Request-Line | Status-Line

Kami akan membahas Request-Line dan Status-Line sambil membahas masing-masing pesan HTTP Request dan HTTP Response. Untuk saat ini, mari kita lihat contoh garis awal jika ada permintaan dan tanggapan:

GET /hello.htm HTTP/1.1     (This is Request-Line sent by the client)

HTTP/1.1 200 OK             (This is Status-Line sent by the server)

Field Header

Bidang header HTTP memberikan informasi yang diperlukan tentang permintaan atau respons, atau tentang objek yang dikirim di badan pesan. Ada empat jenis header pesan HTTP:

  • General-header: Bidang tajuk ini memiliki penerapan umum untuk pesan permintaan dan tanggapan.

  • Request-header: Bidang tajuk ini hanya dapat diterapkan untuk pesan permintaan.

  • Response-header: Bidang tajuk ini hanya dapat diterapkan untuk pesan tanggapan.

  • Entity-header: Bidang header ini menentukan informasi meta tentang badan-entitas atau, jika tidak ada isi, tentang sumber daya yang diidentifikasi oleh permintaan.

Semua tajuk yang disebutkan di atas mengikuti format umum yang sama dan masing-masing bidang tajuk terdiri dari nama yang diikuti oleh titik dua (:) dan nilai bidang sebagai berikut:

message-header = field-name ":" [ field-value ]

Berikut adalah contoh berbagai bidang tajuk:

User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

Badan Pesan

Bagian badan pesan adalah opsional untuk pesan HTTP tetapi jika tersedia, maka digunakan untuk membawa badan-entitas yang terkait dengan permintaan atau respons. Jika badan entitas diasosiasikan, maka biasanyaContent-Type dan Content-Length baris header menentukan sifat badan yang terkait.

Badan pesan adalah yang membawa data permintaan HTTP aktual (termasuk data formulir dan yang diunggah, dll.) Dan data tanggapan HTTP dari server (termasuk file, gambar, dll.). Di bawah ini adalah konten sederhana dari badan pesan:

<html>
   <body>
   
      <h1>Hello, World!</h1>
   
   </body>
</html>

Dua bab berikutnya akan menggunakan konsep yang dijelaskan di atas untuk menyiapkan Permintaan HTTP dan Respons HTTP.