Hi MWN’ers.

Hypertext Transfer Protocol (HTTP) adalah sebuah protokol jaringan lapisan aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif, dan menggunakan hipermedia. Penggunaannya banyak pada pengambilan sumber daya yang saling terhubung dengan tautan, yang disebut dengan dokumen hiperteks, yang kemudian membentuk World Wide Web pada tahun 1990 oleh fisikawan Inggris, Tim Berners-Lee. Hingga kini, ada dua versi mayor dari protokol HTTP, yakni HTTP/1.0 yang menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1 yang dapat menggunakan koneksi yang sama untuk melakukan transaksi. Dengan demikian, HTTP/1.1 bisa lebih cepat karena memang tidak perlu membuang waktu untuk pembuatan koneksi berulang-ulang.

Untuk berbicara langsung dengan server HTTP, kita dapat menggunakan program telnet dan konek ke port HTTP (defaultnya 80, tapi dapat berbeda).

$ telnet HOSTNAME_ATAU_IP 80

Lihat artikel ini, Menggunakan program telnet, jika Anda masih belum familiar dengan program telnet.

Sekilas protokol HTTP

Klien mengirimkan HTTP request berupa: 1 baris request, diikusi dengan nol atau lebih baris header, diakhiri dengan baris kosong (dan dapat diikuti informasi tambahan). Server akan mengirimkan HTTP response berupa 1 baris respon, diikuti nol atau lebih baris header, diikuti bodi respon.

baris request

Sintaks baris request:

METODE URI PROTOKOL

METODE misalnya GET, HEAD, POST, dll. URI misalnya “/” (untuk meminta halaman utama), “/path/file.html?id=123”, dll. PROTOKOL dapat berupa HTTP/1.0 atau HTTP/1.1.

Contoh baris request:

GET / HTTP/1.0

Contoh lain:

HEAD / HTTP/1.0

header

Sintaks header:

NAMA_HEADER: NILAI_HEADER

Contoh:

User-Agent: Mozilla/1.0

Contoh lain:

Pragma: no-cache

baris respon

Sintaks baris respon:

PROTOKOL KODE_RESPON KETERANGAN

PROTOKOL adalah HTTP/1.0 atau HTTP/1.1. KODE_RESPON adalah angka 3 digit, 2xx artinya berhasil, 3xx artinya redirection, 4xx artinya ada kesalahan di sisi klien, 5xx artinya ada kesalahan di sisi server. Kode-kode umum adalah 200 (OK), 302, 303, 401, 403 (Forbidden), 404 (Not Found), 500 (Internal server error). Kode lengkap dapat dilihat di RFC.

Contoh:

HTTP/1.0 200 OK

Contoh lain:

HTTP/1.1 404 Not Found

Contoh

Contoh lengkap sebuah sesi HTTP. Yang dicetak tebal adalah yang kita ketikkan.

Meminta halaman http://www.yahoo.com/ :

$ telnet www.yahoo.com 80
Trying www.yahoo.com...
Connected to www.yahoo.com.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.0 200 OK
Date: Fri, 16 Mar 2007 04:24:16 GMT
P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR 
CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi 
NRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE
GOV"
Content-Type: text/html
X-Cache: MISS from server.localdomain
Connection: close

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML...

Menge-post sesuatu ke www.google.com:

XXX

Tips lain seputar HTTP

Untuk mengintip trafik HTTP, Anda bisa menggunakan fitur di browser seperti misalnya menggunakan plugin HTTPWatch di Internet Explorer, atau extension Live HTTP headers atau Firebug di Firefox.

Di wget ada opsi -S (server response) untuk melihat header yang dikembalikan server. Di curl ada opsi -D (dump headers).