Protokol Transfer Hiperteks
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.
Pengembangan standar HTTP telah dilaksanakan oleh Konsorsium World Wide Web (World Wide Web Consortium/W3C) dan juga Internet Engineering Task Force (IETF), yang berujung pada publikasi beberapa dokumen Request for Comments (RFC), dan yang paling banyak dirujuk adalah RFC 2616 (yang dipublikasikan pada bulan Juni 1999), yang mendefinisikan HTTP/1.1.
Dukungan untuk HTTP/1.1 yang belum disahkan, yang pada waktu itu RFC 2068, secara cepat diadopsi oleh banyak pengembang penjelajah Web pada tahun 1996 awal. Hingga Maret 1996, HTTP/1.1 yang belum disahkan itu didukung oleh Netscape 2.0, Netscape Navigator Gold 2.01, Mosaic 2.7, Lynx 2.5, dan dalam Microsoft Internet Explorer 3.0.
Adopsi yang dilakukan oleh pengguna akhir penjelajah Web pun juga
cepat. Pada bulan Maret 2006, salah satu perusahaan Web hosting
melaporkan bahwa lebih dari 40% dari penjelajah Web yang digunakan di
Internet adalah penjelajah Web yang mendukung HTTP/1.1. Perusahaan yang sama juga melaporkan bahwa hingga Juni 1996, 65% dari semua penjelajah yang mengakses server-server mereka merupakan penjelajah Web yang mendukung HTTP/1.1. Standar HTTP/1.1 yang didefinisikan dalam RFC 2068 secara resmi dirilis pada bulan Januari 1997. Peningkatan dan pembaruan terhadap standar HTTP/1.1 dirilis dengan dokumen RFC 2616 pada bulan Juni 1999.
HTTP adalah sebuah protokol meminta/menjawab antara klien dan server. Sebuah klien HTTP (seperti web browser atau robot dan lain sebagainya), biasanya memulai permintaan dengan membuat hubungan ke port tertentu di sebuah server Webhosting tertentu (biasanya port 80). Klien yang mengirimkan permintaan HTTP juga dikenal dengan user agent. Server yang meresponsnya, yang menyimpan sumber daya seperti berkas HTML dan gambar, dikenal juga sebagai origin server. Di antara user agent dan juga origin server, bisa saja ada penghubung, seperti halnya proxy, gateway, dan juga tunnel.
HTTP tidaklah terbatas untuk penggunaan dengan TCP/IP, meskipun HTTP
merupakan salah satu protokol aplikasi TCP/IP paling populer melalui
Internet. Memang HTTP dapat diimplementasikan di atas protokol yang lain
di atas Internet atau di atas jaringan lainnya. seperti disebutkan
dalam "implemented on top of any other protocol on the Internet, or on
other networks.", tapi HTTP membutuhkan sebuah protokol lapisan
transport yang dapat diandalkan. Protokol lainnya yang menyediakan
layanan dan jaminan seperti itu juga dapat digunakan.."
Sumber daya yang hendak diakses dengan menggunakan HTTP diidentifikasi dengan menggunakan Uniform Resource Identifier (URI), atau lebih khusus melalui Uniform Resource Locator (URL), menggunakan skema URI
http:
atau https:
.
Sesuai dengan perkembangan infrastruktur internet maka pada tahun 1999 dikeluarkan HTTP versi 1.1 untuk mengakomodasi proxy, cache dan koneksi yang persisten.
Metode permintaan
Sebuah permintaan HTTP dilakukan menggunakan telnet. Permintaan, kepala tanggapan dan badan tanggapan ditunjukkan pada gambar.
HTTP menetapkan sembilan metode (kadang disebut "verbs") yang menunjukkan tindakan yang ingin dilakukan terhadap sumber
teridentifikasi. Hal yang diwakili sumber ini, berupa data yang sudah
ada atau data yang diciptakan secara dinamis, bergantung pada
implementasi peladen. Biasanya sumber ini berkaitan dengan berkas atau
keluaran dari berkas pelaksana yang menetap di peladen.
- HEAD
- Meminta tanggapan yang identik dengan tanggapan yang sesuai dengan permintaan GET, namun tanpa badan tanggapan. Ini berguna untuk mengakses informasi meta yang tertulis dalam kepala tanggapan tanpa perlu mengangkut seluruh konten.
- GET
- Meminta representasi sumber tertentu. Permintaan menggunakan GET (dan beberapa metode HTTP lain) "tidak boleh memiliki kepentingan melakukan tindakan selain pengaksesan". W3C telah menerbitkan prinsip panduan mengenai perbedaan ini dengan menyatakan, "desain aplikasi web harus mematuhi prinsip di atas, serta batasan sejenis."
- POST
- Mengirimkan data untuk diproses (misalnya dari bentuk HTML) ke sumber teridentifikasi. Data dimasukkan dalam badan permintaan. Ini dapat menghasilkan pembentukan sumber baru atau pemutakhiran sumber yang sudah ada atau keduanya.
- PUT
- Mengunggah representasi sumber tertentu.
- DELETE
- Menghapus sumber tertentu.
- TRACE
- Menggaungkan kembali permintaan yang diterima, sehingga klien dapat melihat perubahan atau tambahan yang dilakukan oleh peladen perantara.
- OPTIONS
- Mengembalikan metode HTTP yang didukung peladen untuk URL tertentu. Ini dapat digunakan untuk memeriksa fungsionalitas peladen web dengan meminta '*' daripada fungsionalitas sumber tertentu.
- CONNECT
- Menukarkan koneksi permintaan dengan terowongan TCP/IP transparan, biasanya untuk memfasilitasi komunikasi terenkripsi SSL (HTTPS) melalui proksi HTTP tak terenkripsi.
- PATCH
- Menerapkan modifikasi parsial terhadap sumber.
Peladen HTTP diminta untuk mengimplementasikan sedikitnya metode GET dan HEAD dan jika mungkin, metode OPTIONS.
Sesi HTTP
Sebuah sesi HTTP adalah urutan transaksi permintaan dan respons
jaringan dengan menggunakan protokol HTTP. Sebuah klien HTTP akan
memulai sebuah permintaan. Klien tersebut akan membuka sebuah koneksi
Transmission Control Protocol|Transmission Control Protocol (TCP) ke
sebuah port tertentu yang terdapat dalam sebuah host (umumnya port 80
atau 8080). Server yang mendengarkan pada port 80 tersebut akan menunggu
pesan permintaan klien. Saat menerima permintaan, server akan
mengirimkan kembali baris status, seperti "HTTP/1.1 200 OK", dan pesan
yang hendak diminta, pesan kesalahan atau informasi lainnya.
Berikut ini adalah contoh transaksi yang dilakukan oleh server dan klien S = Server C = Client
C : (Inisialisasi koneksi) C : GET /index.htm HTTP/1.1 C : Host: www.wikipedia.org S : 300 OK S : Mime-type: text/html S : S : -- data dokumen -- S : (close connection)
Sumber : [http://id.wikipedia.org/wiki/Http]