Didalam aplikasi inject tentunya terdapat Bug
yang akan dipakai sebagai jembatan berinternet gratis namun Bug saja tidak
cukup kita perlu metode yang cukup untuk Bug Tersebut.
Gambar 1: HTTP Request / Response
Siklus hidup dari permintaan HTTP umumnya terlihat seperti ini:
1.
Seorang pengguna mengunjungi URL dari sebuah situs web.
2.
Hal ini menciptakan permintaan yang diarahkan ke web server
melalui internet (jaringan DNS itu, router dan switch) melalui HTTP (Hypertext
Transfer Protocol).
3.
Web server menerima permintaan HTTP dan merespon pengguna dengan
halaman web (atau isi) yang diminta.
Setiap kali Anda mengklik link dan mengunjungi halaman web, di belakang layar Anda membuat permintaan, dan pada gilirannya menerima respon dari web server. Perhatikan bahwa permintaan HTTP dapat dilakukan melalui banyak saluran, bukan hanya web browser. Misalnya, permintaan HTTP dapat dibuat dengan menggunakan TELNET, atau klien ditulis dalam JAVA atau C # dll
Untuk melihat contoh dari apa yang permintaan HTTP dan respon sepertinya melakukan hal berikut:
1.
Pergi ke situs http://web-sniffer.net/
2.
Ketik www.google.com (atau situs web apapun yang Anda inginkan)
pada "HTTP (S)-URL:" field input. Ketika Anda klik "Submit"
Anda akan melihat permintaan HTTP dan data respon untuk www.google.com.
Anatomi permintaan HTTP:
Sebagai web developer, daerah penting untuk dipahami adalah bagian metode permintaan HTTP. Metode ini memberitahu server web apa permintaan sedang dilakukan pada URI.
Jadi jika Anda mengetikkan URL www.google.com / keuangan (misalnya). Anda meminta URI / keuangan. Dalam URI / keuangan permintaan HTTP harus menentukan metode HTTP.
Metode porsi permintaan HTTP berisi opsi definisi sebagai berikut:
Method =
"OPTIONS"
|
"GET"
|
"HEAD"
|
"POST"
|
"PUT"
|
"DELETE"
|
"TRACE"
|
"CONNECT"
|
extension-method
extension-method =
token
OPTION
Pilihan ini berguna untuk mencari tahu mana metode HTTP dapat diakses oleh klien.Tergantung pada bagaimana web server Anda mencoba untuk menyambung ke dikonfigurasi, administrator mungkin hanya memiliki POST dan GET metode HTTP diakses. Sementara metode HTTP lain seperti DELETE, TRACE, dll dinonaktifkan.
GET
Sebuah permintaan GET mengambil data dari web server dengan menentukan parameter di bagian URL dari permintaan. Jika Anda memeriksa contoh permintaan HTTP bawah ini, kami minta index.html, dan melewati report_id parameter.
GET /index.html?report_id=34543222 HTTP/1.1
Host: www.awebsite.com
User-Agent: Safari/4.0
Contoh saat menggunakan GET:
1.
Anda mengakses URL murni demi melihat data. Anda bisa menganggapnya
sebagai menggunakan pernyataan SELECT SQL. Anda meminta data dari server web
tanpa maksud memperbarui data apapun.
2.
Anda perlu URL untuk menjadi 'bookmarkable'. Pada dasarnya HTTP
GET dianggap diulangi, yang memungkinkan permintaan untuk dicoba aman dan
tanggapan-cache.
3.
Anda tidak keberatan permintaan diulang. Misalnya pengguna
mengunjungi URL yang sama lebih dari sekali.
Contoh ketika tidak menggunakan GET:
1.
Anda lewat data sensitif seperti username, password, nomor
jaminan sosial, dll
2.
Anda mengirimkan data dalam jumlah besar. Meskipun tidak ada
batas karakter didefinisikan dalam spesifikasi HTTP untuk panjang URL, IE 4
misalnya hanya mendukung URL panjang maksimum ~ 2000 karakter menggunakan
permintaan GET.
3.
Anda perlu memperbarui sesuatu pada server, misalnya mengirimkan
formulir yang akan memperbarui alamat pengguna atau keranjang belanja.
POST
Sebuah permintaan HTTP POST memanfaatkan badan pesan untuk mengirim data ke server web. Jika Anda memeriksa contoh permintaan HTTP POST di bawah ini, Anda akan melihat bahwa kita mengirimkan permintaan HTTP POST dengan tubuh pesan 'userid = mo & password = mypassw' untuk login.jsp (login.jsp akan menjadi sebuah aplikasi yang ke depan server web permintaan untuk).
Contoh saat menggunakan POST:
1.
Anda memiliki sejumlah besar data untuk mengirim ke server web
(ukuran data akan melebihi batas URL dari metode GET).
2.
Anda mengirim data sensitif seperti uesrnames, password, nomor
jaminan sosial dan lain-lain
3.
Anda mengubah keadaan data dalam aplikasi web. Misalnya,
keranjang belanja melacak item yang Anda beli.
Contoh ketika tidak menggunakan POST:
1.
URL yang Anda melewati memiliki persyaratan menjadi
'bookmarkable'. Jika keadaan perubahan URL, maka pengguna tidak akan dapat
mengambil, atau melihat data itu itu adalah mantan negara.
2.
Permintaan Anda perlu idempotent. Perhatikan bahwa permintaan
POST bisa idempotent, namun itu praktik yang lebih baik untuk menggunakan PUT
(jika metode permintaan HTTP ini didukung oleh web server dan client)
POST /login.jsp HTTP/1.1
Host: www.awebsite.com
User-Agent: Safari/4.0
Content-Length: 27
Content-Type:
application/x-www-form-urlencoded
userid=mo&password=mypassw
PUT
PUT mirip dengan POST memanfaatkan badan pesan untuk mentransfer data. Namun, ada beberapa perbedaan mendasar antara keduanya. Pertama PUT dianggap idempotent, kedua tindakan seorang PUT ini selalu ditetapkan untuk URI tertentu, akhirnya PUT adalah untuk memuat data untuk sumber daya itu. Dengan kata lain Anda harus tahu lokasi yang tepat dari mana data yang Anda kirimkan akan diambil nanti.
Contoh kapan harus menggunakan PUT:
1.
Masukan adalah idempotent, jadi pada dasarnya jika Anda perlu
untuk mengakomodasi untuk skenario di mana ada permintaan yang disampaikan
beberapa kali tapi hasilnya harus sama untuk setiap pengiriman, penggunaan
PUT.Ini bisa berguna untuk membuat user baru misalnya. Jika Anda mengirim
permintaan PUT untuk membuat user Joe Smith beberapa kali, permintaan terakhir
harus memiliki hasil yang sama seolah-olah dikirim pertama.
2.
Anda memiliki URI khusus yang Anda mengirim data ke. Sebagai
contoh:
POST URI:
http://hostname.com/users/new
PUT URI:
http://hostname.com/users/privacyyou
Contoh ketika tidak menggunakan PUT:
1.
PUT tidak boleh digunakan untuk permintaan non idempotent (jika
keadaan sumber daya kemungkinan akan berubah setiap kali permintaan dikirim).
2.
Ada baiknya untuk diingat bahwa dalam kasus bentuk html,
kebanyakan browser tidak mendukung PUT / DELETE metode. Diharapkan POST / GET
digunakan.Beberapa kerangka Tenang seperti Ruby on Rails misalnya memerlukan
penggunaan PUT / DELETE, namun ini Metode HTTP hanya terowongan melalui Metode
POST HTTP.
PUT /somedatabase/some_doc_id HTTP/1.1
Content-Length: 240
Content-Type:
application/json
{
"Subject":"Resume",
"Author":"Mo",
"Body":"Find my resume attached"
}
HEAD
HTTP Metode HEADgunakan untuk mengambil informasi tentang URL dari web server. Jadi misalnya jika Anda mengirim permintaan HEAD, Anda akan menerima respon dari server web yang berisi informasi yang sama seperti yang Anda lakukan dengan HTTP POST tidak termasuk data tubuh. Berikut adalah contoh:
HEAD /de HTTP/1.1[CRLF]
Host:
www.google.com[CRLF]
Connection: close[CRLF]
User-Agent:
Web-sniffer/1.0.37 [CRLF]
Accept-Encoding:
gzip[CRLF]
Accept-Charset:
ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF]
Cache-Control:
no-cache[CRLF]
Accept-Language:
de,en;q=0.7,en-us;q=0.3[CRLF]
Referer:
http://web-sniffer.net/[CRLF]
DELETE
Metode HTTP DELETE dapat digunakan untuk menghapus sumber daya dari server.Umumnya digunakan dalam dua skenario. Skenario Fist adalah jika Anda mengikuti standar tenang dalam mengembangkan aplikasi web Anda. Kedua hal itu dapat digunakan saat DELETE diaktifkan pada web-server dan Anda ingin mengikuti standar HTTP untuk menghapus sumber daya. Sangat penting untuk dicatat namun yang dapat Anda gunakan HTTP POST untuk menangani tindakan HTTP DELETE juga, keputusan dipersempit ke opsi yang diuraikan di atas.
TRACE
Jika Anda mencoba untuk menjalankan metode TRACE HTTP pada kebanyakan web server-Anda mungkin akan melihat pesan ini:
Status: HTTP/1.1 501 Not Implemented
HTTP TRACE digunakan untuk eacho isi dari Permintaan HTTP kembali ke pemohon (yang dapat berguna untuk debugging). Namun ini dapat menimbulkan ancaman keamanan karena kode berbahaya dapat menyalahgunakan fungsi TRACE HTTP untuk mendapatkan akses ke informasi dalam header HTTP seperti cookies dan data otentikasi, jika permintaan TRACE HTTP dikirim data permohonan asli akan dikembalikan di samping setiap pengguna tertentu data. Contoh respon HTTP TRACE dapat terlihat seperti ini:
TRACE / HTTP/1.1
Host: www.google.com
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Tue, 31 Oct 2012
03:01:44 GMT
Connection: close
Content-Type:
message/http
Content-Length: 39
TRACE / HTTP/1.1
Host: www.google.com
CONNECT
HTTP CONNECT dapat digunakan untuk membuat sambungan jaringan ke server web melalui HTTP. Ini terutama digunakan dalam kasus di mana sebuah koneksi HTTP aman / terenkripsi (terowongan) perlu dibangun antara klien dan web server seperti koneksi SSL.
Terowongan HTTP sederhana koneksi terenkripsi melalui proxy HTTP untuk tujuan sewenang-wenang. Terowongan mengambil keuntungan dari metode HTTP CONNECT biasanya digunakan untuk HTTPS (lalu lintas web yang aman) untuk menghubungkan ke server tujuan. Sebuah koneksi HTTPS khas melalui proxy akan terlihat seperti:
CONNECT remote-server:443 HTTP/1.0
User-Agent: Mozilla/4.0
(compatible; MSIE 6.0;..
Host: remote-server
Content-Length: 0
Proxy-Connection:
Keep-Alive
Pragma: no-cach
- See more at:
http://privacyyou.blogspot.com/2013/09/penjelasan-tentang-http-request-method.html#sthash.6iC3NGbH.dpuf
Tidak ada komentar:
Posting Komentar