A.
Pengertian HTTP
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 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 meresponnya, 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 disesbutkan 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. Protokkol
lainnya yang menyediakan layanan dan jaminan seperti itu juga dapat digunakan.
Sumberdaya yang hendak diakses dengan menggunakan HTTP diidentifikasi
dengan menggunakan uniform resource identifier (URI), atau lebih khusus melalui
Uniform resource locator (URL), dengan menggunakan skema URI http: atau https:.
B.
Ikhtisan Teknis
HTTP berfungsi sebagai permintaan-respon protokol di klien-server model
komputasi. Sebuah web browser, misalnya mungkin klien adn aplikasi yang
berjalan pada komputer hosting yang sebuah situs web mungkin server. Klien
menyampaikan pesan permintaan HTTP ke server, server yang menyediakan sumber
daya seperti HTML file dan konten lainnya, atau melakukan fungsi lain atas nama
klien, dengan mengembalikan sebuah pesan respon ke klien. Respon ini berisi
informasi status tentang penyelesaian permintaan dan juga mungkin mengandung
konten yang diminta dalam tubuh pesannya.
Sebuah web browser adalah contoh dari agen pengguna UA). Jenis lain dari
agen pengguna termasuk perangkat lunak pengindeksan digunakan oleh penyedia
layanan pencarian (web crawler), browser suara, aplikasi mobile dan perangkat
lunak lain yang mengakses, mengkonsumsi dan menampilkan konten web.
HTTP dirancang untuk mengizinkan elemen jaringan menengah untuk memperbaiki
atau mengaktifkan komunikasi antara klien dan server yang memberikan konten
atas nama server hulu untuk meningkatkan waktu respon. Web browser cache yang
sebelumnya diakses sumber web dan menggunakan kembali mereka jika memungkinkan
untuk mengurangi lalu lintas jaringan. HTTP proxy server di jaringan pribdai
batas dapat memfasilitasi komunikasi untuk klien tanpa alaat global routable,
dengan menyampaikan pesan dengan server eksternal.
HTTP adalah sebuah layar aplikasi protokol yang dirancang dalam kerangka
dari internet protocol suite. Definisi mengandaikan sebuah mendasari dan dapt
diandalkan lapisan transport protokol, dan Transmission Contol Protocol
(TCP) mendominasi untuk tujuan ini. Namun HTTP dapat menggunakan protokol tidak
bisa diandalkan seperti User Datagram
Protocol
(UDP), misalnya dalam Simple Service
Discovery Protocol (SSDP).
HTTP sumberdaya diidentifikasi dan terletak pada jaringan
dengan Uniform
Resource Identifier
(URI)-atau, lebih khusus, Uniform
Resource Locators
(URL)-menggunakan http atau https URI skema . URI dan hyperlink di Hypertext
Markup Language (HTML)
dokumen membentuk jaring antar-link hypertext dokumen. Di Internet yang World
Wide Web didirikan pada
tahun 1990 oleh ilmuwan komputer Inggris dan inovator Tim
Berners-Lee .
HTTP/1.1 merupakan revisi dari HTTP asli
(HTTP/1.0). Dalam HTTP/1.0 terpisah koneksi ke
server yang sama dibuat untuk setiap permintaan sumber daya. HTTP/1.1 dapat
menggunakan kembali sambungan beberapa kali untuk men-download gambar, script , stylesheet dan lain-lain setelah halaman telah
disampaikan. HTTP/1.1 komunikasi karena itu mengalami kurang latency sebagai pembentukan koneksi TCP menyajikan
overhead yang cukup.
C.
HTTP sesi
Sebuah
sesi HTTP adalah urutan jaringan permintaan-respon transaksi. Sebuah klien HTTP
memulai permintaan dengan membentuk Transmission
Control Protocol (TCP)
koneksi ke khusus pelabuhan pada server (biasanya port 80, lihat Daftar
TCP dan UDP nomor port
). Sebuah server HTTP yang mendengarkan di port tersebut menunggu pesan
permintaan klien. Setelah menerima permintaan, server akan mengirimkan kembali
baris status, seperti "HTTP/1.1 200 OK", dan pesan sendiri. Tubuh
pesan ini biasanya merupakan sumber daya yang diminta, meskipun pesan kesalahan
atau informasi lain juga dapat dikembalikan.
D.
Permintaan metode
Permintaan
HTTP dibuat menggunakan telnet. Permintaan, header respon dan respon tubuh
tersebut disoroti.
1. HTTP
mendefinisikan sembilan metode (terkadang disebut sebagai
"kata kerja") yang menunjukkan tindakan yang diinginkan yang akan
dilakukan pada sumber daya
diidentifikasi. Apa sumber daya ini mewakili, apakah sudah ada data atau data
yang dihasilkan secara dinamis, tergantung pada pelaksanaan server. Seringkali,
sumber daya sesuai dengan file atau output dari sebuah eksekusi yang berada di
server.
2.
KEPALA
Meminta respon yang identik dengan salah satu yang akan
sesuai dengan permintaan GET, tapi tanpa respon tubuh. Hal ini berguna untuk
mengambil meta-informasi yang ditulis dalam header respon, tanpa harus
mengangkut seluruh konten.
3.
GET
Permintaan representasi dari sumber tertentu. Permintaan
menggunakan GET hanya mengambil
data dan seharusnya tidak memiliki efek lain.
(Hal ini juga berlaku beberapa metode HTTP lainnya.) The W3C telah menerbitkan prinsip-prinsip panduan tentang perbedaan ini,
katanya, " aplikasi Web desain harus diinformasikan oleh
prinsip-prinsip di atas, tetapi juga oleh keterbatasan yang relevan. "
Mengajukan data yang akan diproses (misalnya, dari bentuk HTML ) ke sumber daya diidentifikasi. Data
tersebut termasuk dalam tubuh permintaan. Hal ini dapat mengakibatkan
pembentukan sumber daya baru atau update sumber daya yang ada atau keduanya.
5. PUT
Upload representasi dari sumber tertentu.
6. DELETE
Menghapus sumber daya yang ditentukan.
7. TRACE
Gema kembali permintaan diterima, sehingga klien dapat
melihat apa (jika ada) perubahan atau penambahan yang telah dibuat oleh server
penengah.
8. PILIHAN
Mengembalikan metode HTTP bahwa server mendukung untuk
ditetapkan URL . Ini dapat digunakan untuk memeriksa fungsi dari sebuah server web
dengan meminta '*' dan bukan sumber tertentu.
9. CONNECT
Mengkonversi koneksi permintaan ke transparan terowongan
TCP / IP , biasanya untuk
memfasilitasi SSL -dienkripsi komunikasi ( HTTPS ) melalui terenkripsi proxy HTTP.
10. PATCH
Digunakan untuk menerapkan modifikasi parsial untuk
sumber daya.
HTTP server harus terlebih dahulu menjalankan
setidaknya metode GET dan KEPALA dan, bila memungkinkan, juga metode PILIHAN
E.
Metode Aman
Beberapa
metode (misalnya, HEAD, GET, PILIHAN dan TRACE) didefinisikan sebagai aman,
yang berarti mereka hanya ditujukan untuk pencarian informasi dan tidak boleh
mengubah keadaan server. Dengan kata lain, mereka tidak boleh memiliki efek
samping , di luar efek
relatif tidak berbahaya seperti logging , caching , penyajian iklan banner atau incrementing web counter . Membuat permintaan GET sewenang-wenang
tanpa memperhatikan konteks negara aplikasi karenanya harus dianggap aman.
Sebaliknya, metode seperti POST, PUT dan
DELETE dimaksudkan untuk aktivitas yang dapat menyebabkan efek samping baik
pada server, atau efek samping eksternal seperti transaksi keuangan atau pengiriman email . Metode tersebut karena itu tidak sesuai biasanya digunakan oleh robot web atau web crawler , beberapa yang tidak sesuai cenderung
membuat permintaan tanpa memperhatikan konteks atau konsekuensi.
Meskipun keselamatan yang ditentukan
permintaan GET, dalam praktek penanganan mereka dengan server tidak
secara teknis terbatas dengan cara apapun. Oleh karena itu, pemrograman ceroboh
atau sengaja dapat menyebabkan non-sepele perubahan pada server. Hal ini tidak
disarankan, karena dapat menyebabkan masalah untuk caching web , mesin
pencari dan agen otomatis
lainnya, yang dapat membuat perubahan yang tidak diinginkan pada server.
F.
Idempoten Metode Dan Aplikasi Web
Metode PUT dan DELETE didefinisikan menjadi idempoten , yang berarti bahwa permintaan identik
harus memiliki efek yang sama seperti satu permintaan (Perhatikan bahwa
idempotence mengacu pada keadaan dari sistem setelah permintaan selesai, jadi
sementara tindakan server membutuhkan (misalnya menghapus record) atau kode
respon itu kembali mungkin berbeda pada permintaan berikutnya, keadaan sistem
akan sama setiap waktu.) Metode GET, HEAD, OPTIONS dan Trace, sedang diresepkan
sebagai aman, juga harus idempoten, karena HTTP adalah suatu protokol
stateless .
Sebaliknya, metode POST belum tentu
idempoten, dan karena itu mengirim kali permintaan POST identik lebih lanjut
dapat mempengaruhi negara atau menyebabkan efek samping lebih lanjut (seperti transaksi keuangan ). Dalam beberapa kasus ini mungkin
diinginkan, tetapi dalam kasus lain ini bisa disebabkan kecelakaan, seperti
ketika pengguna tidak menyadari bahwa tindakan mereka akan menghasilkan
mengirim permintaan lain, atau mereka tidak menerima umpan balik yang memadai
bahwa permintaan pertama mereka adalah sukses. Sementara web browser akan menampilkan kotak
dialog peringatan untuk
memperingatkan pengguna dalam beberapa kasus di mana reload halaman mungkin
kembali mengirimkan permintaan POST, umumnya sampai dengan aplikasi web untuk
menangani kasus di mana permintaan POST tidak boleh mengirimkan lebih dari satu
kali.
Perhatikan bahwa apakah metode adalah
idempoten tidak ditegakkan oleh protokol atau web server. Sangat mungkin untuk
menulis sebuah aplikasi web di mana (misalnya) memasukkan database atau
non-idempoten aksi dipicu oleh permintaan GET atau lainnya. Mengabaikan
rekomendasi ini, bagaimanapun, dapat mengakibatkan konsekuensi yang tidak
diinginkan, jika user agent mengasumsikan bahwa mengulang permintaan
yang sama aman jika tidak.
G.
Keamanan
Menerapkan metode seperti TRACE, TRACK dan
DEBUG dianggap berpotensi tidak aman oleh beberapa profesional keamanan, karena
mereka dapat digunakan oleh penyerang untuk mengumpulkan informasi atau
melewati kontrol keamanan selama serangan. Keamanan perangkat lunak perangkat
seperti Nessus dapat dipertahankan dan Microsoft laporan URLScan pada
keberadaan metode ini sebagai masalah keamanan.
H.
Kode Status
Dalam
HTTP/1.0 dan sejak, baris pertama dari respon HTTP disebut baris status
dan termasuk kode status numerik (seperti " 404
") dan sebuah frase alasan tekstual (seperti" Tidak Ditemukan
"). Cara agen
pengguna menangani respon
terutama tergantung pada kode dan sekunder pada header respon. Kode status
kustom dapat digunakan karena, jika agen pengguna menemukan kode itu tidak
mengakui, dapat menggunakan digit pertama dari kode untuk menentukan kelas umum
respon.
Juga, frase alasan standar hanya
rekomendasi dan dapat diganti dengan "setara lokal" di web
developer kebijaksanaan itu.
Jika kode status menunjukkan masalah, user agent mungkin menampilkan frase
alasan untuk pengguna untuk memberikan informasi lebih lanjut tentang sifat
dari masalah. Standar ini juga memungkinkan user agent untuk mencoba
menafsirkan frase alasan, meskipun ini mungkin tidak bijaksana karena
standar secara eksplisit menetapkan bahwa kode status yang dapat dibaca mesin
dan frase alasan yang terbaca-manusia.
I.
Koneksi Persistent
Dalam
HTTP/0.9 dan 1,0, koneksi ditutup setelah sepasang permintaan / respon tunggal.
Dalam HTTP/1.1 mekanisme tetap-hidup-diperkenalkan, di mana koneksi dapat
digunakan kembali untuk lebih dari satu permintaan.
Koneksi persisten tersebut mengurangi permintaan latensi nampak, karena klien tidak perlu kembali
menegosiasikan koneksi TCP setelah permintaan pertama telah dikirim. Efek
samping lain yang positif adalah bahwa secara umum koneksi menjadi lebih cepat
dengan waktu karena TCP slow-start -mekanisme.
Versi 1.1 dari protokol membuat perbaikan
bandwith optimasi untuk HTTP/1.0. Sebagai contoh, HTTP/1.1 memperkenalkan pengkodean
mentransfer chunked untuk
mengizinkan konten pada koneksi yang gigih untuk dialirkan, bukan buffer. pipelining
HTTP selanjutnya mengurangi jeda waktu, yang
memungkinkan klien untuk mengirimkan beberapa permintaan sebelum tanggapan yang
sebelumnya telah diterima untuk yang pertama. Lain peningkatan dengan protokol
adalah byte
porsi , yang ketika
server mengirimkan hanya bagian dari sumber daya secara eksplisit diminta oleh
klien.
J.
HTTP negara sesi
HTTP
adalah protokol
bernegara . Sebuah protokol
stateless tidak memerlukan server untuk menyimpan informasi atau status tentang
setiap pengguna selama beberapa permintaan. Sebagai contoh, ketika sebuah
server web diperlukan untuk menyesuaikan isi dari halaman web untuk pengguna, aplikasi web mungkin harus melacak kemajuan pengguna dari
halaman ke halaman. Solusi umum adalah penggunaan cookie HTTP . Metode lain mencakup sesi sisi server,
variabel tersembunyi (ketika halaman ini berisi bentuk), dan URL-ulang menggunakan URI-encoded
parameter, misalnya, / index.php? session_id =
some_unique_session_code.
K.
Secure HTTP
Ada
tiga metode membangun koneksi HTTP aman: Secure HTTP , Aman Hypertext Transfer Protocol dan sundulan
upgrade HTTP/1.1 .
Browser dukungan untuk dua terakhir, bagaimanapun, hampir tidak ada, sehingga
Secure HTTP adalah metode dominan membangun koneksi HTTP aman.