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).