HTTP - Permintaan

Klien HTTP mengirimkan permintaan HTTP ke server dalam bentuk pesan permintaan yang menyertakan format berikut:


     
  • A Request-line
  • Zero or more header (General|Request|Entity) 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

Bagian berikut menjelaskan setiap entitas yang digunakan dalam pesan permintaan HTTP.

Baris Permintaan

Request-Line dimulai dengan token metode, diikuti oleh Request-URI dan versi protokol, dan diakhiri dengan CRLF. Elemen dipisahkan oleh spasi karakter SP.

Request-Line = Method SP Request-URI SP HTTP-Version CRLF

Mari kita bahas masing-masing bagian yang disebutkan di Request-Line.

Metode Permintaan

Permintaan method menunjukkan metode yang akan dilakukan pada sumber daya yang diidentifikasi oleh yang diberikan Request-URI. Metode ini peka huruf besar kecil dan harus selalu disebutkan dalam huruf besar. Tabel berikut mencantumkan semua metode yang didukung di HTTP / 1.1.

SN Metode dan Deskripsi
1 GET

Metode GET digunakan untuk mengambil informasi dari server yang diberikan menggunakan URI yang diberikan. Permintaan yang menggunakan GET seharusnya hanya mengambil data dan tidak memiliki efek lain pada data.

2 HEAD

Sama seperti GET, tetapi hanya mentransfer baris status dan bagian header.

3 POST

Permintaan POST digunakan untuk mengirim data ke server, misalnya, informasi pelanggan, unggah file, dll. Menggunakan formulir HTML.

4 PUT

Mengganti semua representasi saat ini dari sumber daya target dengan konten yang diunggah.

5 DELETE

Menghapus semua representasi saat ini dari sumber daya target yang diberikan oleh URI.

6 CONNECT

Menetapkan terowongan ke server yang diidentifikasi oleh URI tertentu.

7 OPTIONS

Jelaskan opsi komunikasi untuk sumber daya target.

8 TRACE

Melakukan pengujian loop kembali pesan bersama dengan jalur ke sumber daya target.

Request-URI

Request-URI adalah Uniform Resource Identifier dan mengidentifikasi sumber daya untuk menerapkan permintaan tersebut. Berikut adalah formulir yang paling umum digunakan untuk menentukan URI:

Request-URI = "*" | absoluteURI | abs_path | authority
 
SN Metode dan Deskripsi
1 Tanda bintang *digunakan saat permintaan HTTP tidak berlaku untuk sumber daya tertentu, tetapi untuk server itu sendiri, dan hanya diizinkan jika metode yang digunakan tidak selalu berlaku untuk sumber daya. Sebagai contoh:

OPTIONS * HTTP/1.1

2 Itu absoluteURIdigunakan saat permintaan HTTP dibuat ke proxy. Proksi diminta untuk meneruskan permintaan atau layanan dari cache yang valid, dan mengembalikan responsnya. Sebagai contoh:

GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1

3 Bentuk URI Permintaan yang paling umum adalah yang digunakan untuk mengidentifikasi sumber daya di gateway atau server asal. Misalnya, klien yang ingin mengambil sumber daya secara langsung dari server asal akan membuat koneksi TCP ke port 80 dari host "www.w3.org" dan mengirimkan baris berikut:

GET /pub/WWW/TheProject.html HTTP/1.1

Host: www.w3.org

Perhatikan bahwa jalur absolut tidak boleh kosong; jika tidak ada yang ada di URI asli, itu HARUS diberikan sebagai "/" (root server).

Minta Kolom Header

Kita akan mempelajari General-header dan Entity-header dalam bab terpisah ketika kita akan mempelajari field header HTTP. Untuk saat ini, mari kita periksa apa itu bidang header Permintaan.

Bidang header permintaan memungkinkan klien untuk menyampaikan informasi tambahan tentang permintaan, dan tentang klien itu sendiri, ke server. Bidang-bidang ini bertindak sebagai pengubah permintaan. Berikut adalah daftar beberapa bidang header Permintaan penting yang dapat digunakan berdasarkan persyaratan:

  • Accept-Charset

  • Accept-Encoding

  • Accept-Language

  • Authorization

  • Expect

  • From

  • Host

  • If-Match

  • If-Modified-Since

  • If-None-Match

  • If-Range

  • If-Unmodified-Since

  • Max-Forwards

  • Proxy-Authorization

  • Range

  • Referer

  • TE

  • User-Agent

Anda dapat memperkenalkan bidang kustom Anda jika Anda akan menulis Klien dan Server Web kustom Anda sendiri.

Contoh Pesan Permintaan

Sekarang mari kita gabungkan semuanya untuk membentuk permintaan HTTP untuk diambil hello.htm halaman dari server web yang berjalan di tutorialspoint.com

GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

Di sini kami tidak mengirimkan data permintaan apa pun ke server karena kami mengambil halaman HTML biasa dari server. Sambungan adalah tajuk umum, dan tajuk lainnya adalah tajuk permintaan. Contoh berikut menunjukkan cara mengirim data formulir ke server menggunakan isi pesan permintaan:

POST /cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

licenseID=string&content=string&/paramsXML=string

Di sini URL yang diberikan /cgi-bin/process.cgi akan digunakan untuk memproses data yang dilewatkan dan karenanya, tanggapan akan dikembalikan. Sinicontent-type memberitahu server bahwa data yang dilewatkan adalah data formulir web sederhana dan lengthakan menjadi panjang sebenarnya dari data yang dimasukkan ke dalam badan pesan. Contoh berikut menunjukkan bagaimana Anda bisa meneruskan XML biasa ke server web Anda:

POST /cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://clearforest.com/">string</string>