Tutorial

Programer PHP, Ini Cara Kerja HTTP

Untuk mengekspresikan ide atau keinginan kepada manusia lain maka manusia berkomunikasi, umumnya menggunakan bahasa, namun bahasa suatu kelompok belum tentu dimengerti oleh kelompok lain, guna mempermudah dan menghindari kesalahpahaman dalam komunikasi ditetapkanlah protokol, hal ini biasa anda saksikan dalam acara atau kunjungan resmi kenegaraan.

Internet bekerja dengan cara yang serupa dengan manusia untuk berkomunikasi, agar semua browser, server dan aplikasi berbasis web dapat saling berkomunikasi satu sama lain maka digunakan protokol HTTP, yaitu Hyper Text Transfer Protokol. HTTP adalah protokol umum yang digunakan oleh internet, namun layak diingat, HTTP bukanlah satu-satunya protokol.

Triliunan aplikasi, gambar, tulisan, video, suara dan lainnya di akses melalui internet setiap hari, dan HTTP dapat diandalkan untuk mengirimkan itu semua dengan cepat dan gampang, dari server di belahan bumi manapun menuju browser di rumah anda.

Siapapun yang mengirimkan data kepada anda, dari manapun, tidak perlu khawatir datanya akan mengalami kerusakan atau berantakan pada saat pengiriman, kenapa? karena HTTP menggunakan protokol transmisi data yang handal (Reliable Data-Transmit Protocols,) tentu saja hal ini menguntungkan. Sebagai pengguna internet, keuntungan anda adalah keutuhan data, sedangkan sebagai pengembang aplikasi internet, keuntungannya adalah bebas dari rasa khawatir proses pengiriman akan merusak, menduplikat atau merubah data.

Content untuk web berada di server web, dan server web berkomunikasi menggunakan HTTP, oleh karena itu disebut juga server HTTP, server ini digunakan untuk menyimpan data yang bisa diakses melalui internet, juga menyediakan data apabila ada permintaan dari HTTP client. Client mengirimkan permintaan kepada server dan server menanggapi permintaan client dengan memberikan data yang diinginkan.

Ada berbagai macam tipe client, browser web adalah client yang umumnya anda gunakan. Browser web mengajukan permintaan HTTP object dari server dan menampilkan objeck di layar anda.

Saat anda mengakses situs internet menggunakan browser, contohnya: “http://nuxid.com/2017/11/26/motorola-moto-g5s-plus-masih-smartphone-paling-bagus-dengan-harga-3-jutaan.html” browser anda mengirimkan permintaan, disebut juga HTTP request ke server www.nuxid.com, lalu server berusaha menemukan object yang diinginkan, dalam hal ini object yang diinginkan adalah motorola-moto-g5s-plus-masih-smartphone-paling-bagus-dengan-harga-3-jutaan.html, jika berhasil menemukannya, server akan mengirimkan object kepada client berbarengan dengan informasi mengenai object, seperti tipe, kapasitas dan lainnya.

Sumber content web berasal dari web resource, dan server web mengelola (host) web resource. Jenis web resource yang sederhana adalah data statis pada server web, seperti text, HTML, JPEG, atau AVI, akan tetapi resource tidak terbatas pada data statis saja, resource bisa saja program yang bekerja dan memberikan content sesuai permintaan anda, seperti melakukan transaksi jual beli online dan semacamnya.

Karena internet mengelola/host beribu-ribu tipe data yang berbeda, HTTP secara berhati-hati menandai (tag) setiap object yang sedang dikirim dengan label format data yang disebut MIME Type. Pada mulanya MIME (Multipurpose Internet Mail Extensions) didesain untuk menyelesaikan permasalahan perbedaan sistem pada pengiriman pesan elektronik (email), Karena MIME dirasa sangat baik untuk email, akhirnya HTTP menggunakan MIME untuk mendeskripsikan dan melabel content multimedia.

Server web mencantumkan sebuah MIME type untuk tiap-tiap data object HTTP. Saat browser web mendapatkan object yang diberikan oleh server, browser akan melihat MIME type dari object agar browser dapat menentukan apa yang harus dilakukannya untuk menangani object. Umumnya browser mampu menangani ratusan tipe object, seperti menampilkan gambar, memainkan audio dan video, membaca format HTML dan lainnya.

MIME type adalah label teks, seperti text/html, image/jpeg, video/quicktime. Terdiri dari tipe objek utama contohnya: teks, image, video dan tipe spesifik dari objek utama yang diletakan setelah garis miring, yaitu jpeg yang merupakan tipe spesifik/sub dari image atau quictime yang merupakan tipe spesifik dari video.

Tiap-tiap resource pada web server memiliki sebuah nama, sehingga client dengan mudah menunjuk resource yang diinginkan. Nama bagi resource yang terdapat pada server disebut Uniform Resource Identifier atau URI. Analogi yang gampang bagi URI adalah kodepos, URI merupakan kodepos di internet, kode unik dimana informasi resource ditempatkan diseluruh dunia.

contoh;
http://nuxid.com/2018/01/05/cara-charging-baterai-hape-sesuai-anjuran-ahli.html

Pada contoh diatas, menunjukan bagaimana URI menspesifikasi protokol HTTP mengakses resource HTML pada server blogger.com. URI tersedia dalam dua jenis, yaitu URL dan URN.

URL adalah bentuk identifier bagi resource yang paling umum anda jumpai, URL mendeskripsikan lokasi yang spesifik dari resource pada sebuah server, pada contoh di atas bisa kita lihat contoh dari URL yang secara akurat menunjukkan dimana resource berada dan bagaimana mengaksesnya.

Kebanyakan URL mengikuti format standar yang terdiri dari tiga bagian utama, yaitu:

Bagian pertama URL yang disebut scheme (skema), mendeskripsikan protokol yang digunakan untuk mengakses resource, biasanya protokol HTTP (http://)
Berikutnya adalah internet address dari server (http://nuxid.com)
Selanjutnya nama resource pada server web (2018/01/05/cara-charging-baterai-hape-sesuai-anjuran-ahli.html)

Saat ini, hampir semua URI adalah URL.

Tipe kedua dari URI adalah Uniform Resource Name (URN), sebuah nama unik untuk bagian khusus dari content, dapat diakses terlepas dari tempat resource berada, artinya URN memperbolehkan resource berpindah dari satu tempat ke tempat lainnya, juga memperbolehkan resource nantinya diakses oleh multiple network access protocol sambil mempertahankan nama yang sama.

Sebagai contoh, dokumen berikut digunakan untuk menamai dokumen standar internet “RFC 2141” tanpa memperdulikan dimana ia berada (bisa jadi ada copian di beberapa tempat)

urn:ietf:rfc:2141

URN masih dalam masa percobaan dan belum sepenuhnya diadopsi.

Sebuah transaksi HTTP terdiri dari command request yang dikirimkan dari client ke server dan respon dari server yang dikembalikan dari server ke client. Komunikasi ini terjadi dengan HTTP message atau kelompok data yang telah diformat.

Contoh HTTP message yang berisi command dan URI dari client:
GET /specials/saw-blade.gif HTTP/1.0 Host: http://nuxid.com

Contoh HTTP response message berisi hasil transaksi:
HTTP/1.0 200 OK http://nuxid.com
Content-type: text/plain
Content-length: 8572

HTTP mendukung beberapa command request yang berbeda yang disebut HTTP method. Setiap HTTP request message memiliki sebuah method dan method inilah yang memberitahu server apa yang harus dilakukan, beberapa method yang sering digunakan adalah:

Get: Mengirimkan permintaan resource dari server ke client.
Put: Menyimpan data dari client ke server resource.
Delete: Menghapus resource dari server.
Post: Mengirimkan data client kedalam aplikasi server gateway.
Head: Hanya mengirimkan header HTTP dari response

Setiap HTTP response message dikembalikan kepada client bersama kode status, yang merupakan 3 digit kode numerik yang memberitahu status request client, apakah request berhasil atau membutuhkan aksi yang lain. Beberapa kode status yang umum:

200: OK, dokumen dikembalikan secara benar.
302: Dialihkan, ketempat lain untuk mendapatkan resource.
404: Tidak ditemukan, tidak dapat menemukan resource.

Untuk menyelesaikan suatu tugas, tak jarang aplikasi mengeluarkan beberapa transaksi HTTP. Contohnya pada saat mengeluarkan rentetan permintaan transaksi HTTP untuk menarik dan menampilkan halaman web yang didominasi oleh grafis, oleh karena itu sebuah halaman web seringkali kumpulan dari beberapa resource, tidak hanya satu resource saja.

Dalam pemrograman PHP, anda akan sering bertemu dengan HTTP method karena PHP merupakan bahasa pemrograman untuk server, jika anda baru saja memulai pemrograman menggunakan PHP maka ikhtisar ini cukup sebagai modal anda, namun jika anda tertarik untuk mempelajari HTTP lebih lanjut, akan dibahas pada tulisan selanjutnya.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.