The Hypertext Transfer Protocol (HTTP) adalah sebuah protokol aplikasi untuk didistribusikan, kolaboratif, hypermedia sistem informasi. HTTP adalah dasar komunikasi data untuk World Wide Web .
Hypertext adalah teks terstruktur yang menggunakan link logis ( hyperlink ) antara node yang berisi teks. HTTP adalah protokol untuk bertukar atau mentransfer hypertext.
Pengembangan standar HTTP dikoordinasi oleh Internet Engineering Task Force (IETF) dan World Wide Web Consortium (W3C), yang berpuncak pada publikasi serangkaian Permintaan untuk Komentar (RFC), terutama RFC 2616 (Juni 1999), yang mendefinisikan HTTP/1.1, versi HTTP yang digunakan umum.
Teknis
Fungsi HTTP sebagai permintaan-respon protokol di client-server model komputasi. Sebuah web browser , misalnya, mungkin klien dan aplikasi yang berjalan pada komputer hosting yang sebuah situs web mungkin server. Klien mengajukan pesan permintaan HTTP ke server. Server, yang menyediakan sumber daya seperti HTML file dan konten lainnya, atau melakukan fungsi lain atas nama klien, mengembalikan pesan respon ke klien. Tanggapan berisi informasi status penyelesaian tentang permintaan dan mungkin juga mengandung konten yang diminta dalam tubuh pesannya.
Sebuah web browser adalah contoh dari sebuah agen pengguna (UA). Jenis lain dari agen pengguna termasuk perangkat lunak pengindeksan yang digunakan oleh penyedia layanan pencarian ( web crawler ), browser suara , aplikasi mobile dan perangkat lunak lain yang mengakses, mengkonsumsi atau menampilkan konten web.
HTTP dirancang untuk memungkinkan elemen jaringan menengah untuk memperbaiki atau mengaktifkan komunikasi antara klien dan server. Situs web tinggi lalu lintas sering mendapat manfaat dari web tembolok server yang memberikan konten atas nama server hulu untuk meningkatkan waktu respon. Web browser-cache sumber daya diakses sebelumnya web dan menggunakan kembali mereka bila memungkinkan untuk mengurangi lalu lintas jaringan. HTTP proxy server di jaringan pribadi batas dapat memfasilitasi komunikasi untuk klien tanpa alamat routable secara global, dengan menyampaikan pesan dengan server eksternal.
HTTP adalah sebuah layer aplikasi protokol yang dirancang dalam kerangka dari Internet Protocol Suite . Definisi mengandaikan sebuah mendasari dan dapat diandalkan transport layer protocol, dan Transmission Control Protocol (TCP) umumnya digunakan. Namun HTTP dapat menggunakan protokol tidak bisa diandalkan seperti User Datagram Protocol (UDP), misalnya dalam Layanan Simple Discovery Protocol (SSDP).
Sumber daya HTTP diidentifikasi dan terletak pada jaringan dengan Uniform Resource Identifier (URI)-atau, lebih khusus, Uniform Resource Locators (URL)-menggunakan http atau https skema URI . URI dan hyperlink di Hypertext Markup Language (HTML) dokumen membentuk jaring antar-linked hypertext dokumen.
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. Oleh karena itu, komunikasi HTTP/1.1 mengalami kurang latency sebagai pembentukan koneksi TCP menyajikan overhead yang cukup besar.
Sejarah
Istilah HyperText diciptakan oleh Ted Nelson yang pada gilirannya terinspirasi oleh Vannevar Bush 's mikrofilm berbasis " memex . " Tim Berners-Lee pertama kali mengajukan "WorldWideWeb" Proyek - sekarang dikenal sebagai World Wide Web . Berners-Lee dan timnya dikreditkan dengan inventing HTTP asli bersama dengan HTML dan teknologi yang terkait untuk server web dan browser web berbasis teks. Versi pertama dari protokol hanya memiliki satu metode , yaitu GET, yang akan meminta halaman dari server. Tanggapan dari server selalu halaman HTML.
Versi Pertama didokumentasikan HTTP adalah HTTP v0.9 (1991). Dave Raggett memimpin Kelompok Kerja HTTP (HTTP WG) pada tahun 1995 dan ingin memperluas protokol dengan operasi diperpanjang, negosiasi diperpanjang, meta-informasi yang lebih kaya, diikat dengan keamanan protokol yang menjadi lebih efisien dengan menambahkan metode tambahan dan field header . RFC 1945 secara resmi diperkenalkan dan diakui HTTP V1.0 pada tahun 1996.
The HTTP WG berencana untuk menerbitkan standar baru pada Desember 1995 dan dukungan untuk HTTP/1.1 pra-standar berdasarkan kemudian mengembangkan RFC 2068 (HTTP disebut-NG) dengan cepat diadopsi oleh pengembang browser besar di awal tahun 1996. Pada bulan Maret tahun 1996, HTTP/1.1 pra-standar didukung Arena , Netscape 2.0, Netscape Navigator Emas 2.01, Mosaic 2.7 , Lynx 2.5, dan Internet Explorer 2.0. Adopsi pengguna akhir browser baru itu cepat. Pada bulan Maret 1996, salah satu perusahaan web hosting melaporkan bahwa lebih dari 40% dari browser yang digunakan di Internet adalah HTTP 1.1 compliant. Bahwa perusahaan web hosting yang sama melaporkan bahwa pada Juni 1996, 65% dari semua browser mengakses server mereka HTTP / 1.1 compliant. Standar HTTP/1.1 sebagaimana didefinisikan dalam RFC 2068 secara resmi dirilis pada bulan Januari 1997. Perbaikan dan update dengan standar HTTP/1.1 yang dirilis di bawah RFC 2616 pada bulan Juni 1999.
Sesi HTTP
Sebuah sesi HTTP adalah urutan jaringan transaksi request-response. Sebuah klien HTTP memulai permintaan dengan membentuk Transmission Control Protocol (TCP) koneksi ke tertentu pelabuhan pada server (biasanya port 80, lihat Daftar TCP dan nomor port UDP ). Server HTTP mendengarkan pada port yang menunggu pesan permintaan klien. Setelah menerima permintaan, server akan mengirimkan kembali baris status, seperti "HTTP/1.1 200 OK", dan pesan tersendiri. Tubuh pesan ini biasanya sumber daya yang diminta, meskipun pesan kesalahan atau informasi lainnya juga dapat dikembalikan.
Metode Request
HTTP 1.1 permintaan yang dibuat menggunakan telnet. The permintaan , respon header dan respon tubuh yang disorot.
HTTP mendefinisikan metode (kadang-kadang disebut sebagai kata kerja) untuk menunjukkan tindakan yang diinginkan yang akan dilakukan pada sumber daya diidentifikasi. Apa sumber daya ini mewakili, apakah data yang sudah ada atau data yang dihasilkan secara dinamis, tergantung pada implementasi server. Seringkali, sumber daya sesuai dengan file atau output dari eksekusi yang berada di server.
The HTTP/1.0 spesifikasi : bagian 8 mendefinisikan GET, POST dan metode KEPALA dan spesifikasi HTTP/1.1 : Bagian 9 ditambah 5 metode baru: PILIHAN, PUT, DELETE, TRACE dan CONNECT. Dengan yang ditentukan dalam dokumen-dokumen semantik mereka sangat terkenal dan dapat diandalkan. Setiap klien dapat menggunakan metode apapun dan server dapat dikonfigurasi untuk mendukung setiap kombinasi metode. Jika metode tidak diketahui perantara itu akan diperlakukan sebagai tidak aman dan non-idempotent metode. Tidak ada batasan untuk jumlah metode yang dapat didefinisikan dan ini memungkinkan untuk metode masa depan akan ditentukan tanpa melanggar infrastruktur yang ada. Misalnya WebDAV didefinisikan 7 metode baru dan RFC5789 ditentukan metode PATCH.
GET
Permintaan representasi dari sumber daya yang ditentukan. Permintaan menggunakan GET seharusnya hanya mengambil data dan seharusnya tidak berpengaruh lainnya. (Hal ini juga berlaku dari beberapa metode HTTP lainnya.) [1] The W3C telah menerbitkan prinsip panduan tentang perbedaan ini, mengatakan, " aplikasi Web desain harus diinformasikan oleh prinsip-prinsip di atas, tetapi juga oleh keterbatasan yang relevan. " [11] Lihat metode yang aman di bawah ini.
KEPALA
Minta respon identik dengan salah satu yang akan sesuai dengan permintaan GET, tapi tanpa respon tubuh. Hal ini berguna untuk mengambil meta-informasi tertulis dalam header respon , tanpa harus mengangkut seluruh konten.
POST
Permintaan bahwa server menerima entitas tertutup di permintaan sebagai subordinat baru dari sumber daya web yang diidentifikasi oleh URI. Data diposting mungkin, sebagai contoh, anotasi untuk sumber daya yang ada, pesan untuk papan buletin, newsgroup, mailing list, atau komentar benang, sebuah blok data yang merupakan hasil dari mengajukan formulir web untuk proses penanganan data- ;. atau item untuk ditambahkan ke database.
PUT
Permintaan bahwa badan tertutup disimpan di bawah disediakan URI . Jika URI mengacu pada sumber daya yang sudah ada, hal itu diubah,. Jika URI tidak menunjuk ke sebuah sumber daya yang ada, maka server dapat menciptakan sumber daya dengan URI.
DELETE
Menghapus sumber daya yang ditentukan.
TRACE
Gema kembali permintaan yang diterima sehingga klien dapat melihat apa (jika ada) perubahan atau penambahan yang telah dibuat oleh server penengah.
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.
CONNECT
Mengubah koneksi permintaan ke transparan terowongan TCP / IP , biasanya untuk memfasilitasi SSL -komunikasi terenkripsi ( HTTPS ) melalui terenkripsi proxy HTTP .
PATCH
Digunakan untuk menerapkan modifikasi parsial terhadap sumber daya. Server HTTP yang diperlukan untuk melaksanakan setidaknya GET dan metode KEPALA dan, bila memungkinkan, juga metode OPTIONS.
Metode Safe
Beberapa metode (misalnya, KEPALA, GET, PILIHAN dan TRACE) didefinisikan sebagai safe, yang berarti mereka dimaksudkan hanya untuk pencarian informasi dan tidak boleh mengubah keadaan server. Dengan kata lain, mereka tidak harus memiliki efek samping , di luar efek relatif tidak berbahaya seperti logging , caching , penyajian iklan banner atau incrementing kontra web . 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 di server, atau efek samping eksternal seperti transaksi keuangan atau transmisi email . Metode tersebut karenanya tidak biasanya digunakan oleh sesuai robot web atau web crawler , beberapa yang tidak sesuai cenderung membuat permintaan tanpa memperhatikan konteks atau konsekuensi.
Meskipun keselamatan ditentukan dari permintaan GET, dalam praktek penanganan mereka dengan server tidak secara teknis terbatas dengan cara apapun. Oleh karena itu, pemrograman ceroboh atau sengaja dapat menyebabkan perubahan non-sepele 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.
Metode idempoten dan aplikasi web
Metode PUT dan DELETE didefinisikan untuk idempoten , yang berarti bahwa beberapa permintaan identik harus memiliki efek yang sama seperti satu permintaan (Catatan idempotence yang mengacu pada keadaan sistem setelah permintaan telah selesai, jadi sementara aksi server membutuhkan (misalnya menghapus catatan) atau kode respon itu kembali mungkin berbeda pada permintaan berikutnya, sistem negara akan sama setiap kali). Metode GET, KEPALA, PILIHAN dan TRACE, yang diresepkan aman, juga harus idempoten, HTTP adalah protokol stateless .
Sebaliknya, metode POST belum tentu idempoten, dan karena itu mengirim permintaan POST identik beberapa kali lebih jauh 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 oleh 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 sukses. Sementara web browser dapat menampilkan kotak dialog peringatan untuk memperingatkan pengguna dalam beberapa kasus di mana reload halaman dapat kembali mengajukan permintaan POST, biasanya sampai dengan aplikasi web untuk menangani kasus-kasus di mana permintaan POST tidak boleh mengirimkan lebih dari satu kali.
Perhatikan bahwa apakah metode adalah idempotent tidak ditegakkan oleh protokol atau server web. Hal ini sangat mungkin untuk menulis aplikasi web di mana (misalnya) memasukkan database atau tindakan non-idempotent lain dipicu oleh GET atau permintaan lainnya. Mengabaikan rekomendasi ini, bagaimanapun, dapat mengakibatkan konsekuensi yang tidak diinginkan, jika agen pengguna mengasumsikan bahwa mengulangi permintaan yang sama aman jika tidak.
Keamanan
Menerapkan metode seperti TRACE, TRACK dan DEBUG dianggap berpotensi tidak aman oleh beberapa profesional keamanan karena penyerang dapat menggunakannya untuk mengumpulkan informasi atau kontrol keamanan memotong selama serangan. Perangkat lunak keamanan seperti Nessus dapat dipertahankan dan laporan Microsoft Security Tool UrlScan pada kehadiran metode ini sebagai masalah keamanan
Tidak ada komentar:
Posting Komentar