Sabtu, 25 Juli 2009

HTTP (HyperText Transfer Protocol)

HTTP adalah kepanjangan dari HyperText Transfer Protocol. HTTP itu adalah suatu bentuk protokol umum, yang digunakan oleh server dan client untuk berkomunikasi di dunia web. Komunikasi ini terjadi dalam bentuk request dan response. jadi jika si klien merequest maka sang server akan merespon. Response apa yang akan diberikan oleh sang server, sangat bergantung dari request (permintaan) dari sang client. Contohnya, si klien merequest sebuah halaman web (html), maka sang server akan merespon dengan cara mengirimkan isi dari halaman web yang diminta oleh si klien tadi.

HTTP adalah pengembangan dari FTP atau File Transfer Protocol. karena FTP mempunyai kekurangan yaitu adalah terlalu rumit untuk dimengerti bagi orang yang masih awam dengan dunia networking dan segala protocollernya, maka diciptakannya HTTP. HTTP memiliki perintah yang lebih sedikit dan lebih mudah untuk dipahami.

  • GET - Syntax atau perintah ini digunakan untuk meminta atau merequest sebuah objek dari server. Objek ini bisa berupa halaman web, dokumen, file, dan lain-lain. Format penulisan syntax ini adalah sebagai berikut:

GET Request-URI Version

Dimana Request-URI adalah alamat web dari objek yang ingin direquest. Sedangkan Version, adalah versi dari protokol HTTP yang digunakan.

Contohnya, GET www.google.com HTTP/1.1

  • HEAD - Perintah ini digunakan untuk meminta atau merequest meta-information dari sebuah objek yang ada di server. Format penulisannya adalah sebagai berikut:

HEAD Request-URI Version

Contohnya, HEAD www.google.com HTTP/1.1

perintah HEAD memang mirip dengan GET. Bedanya, kalo menggunakan perintah GET, maka seluruh isi objek yang direquest akan dikirimkan oleh server. Sedangkan kalo menggunakan perintah HEAD, hanya informasi yang terdapat dalam META TAG saja yang akan dikirimkan oleh server.

  • PUT - Perintah ini adalah kebalikan dari perintah GET. Maksudnya, kalo GET digunakan oleh client untuk meminta dan mengambil sebuah objek dari server (download), sedangkan perintah PUT digunakan untuk mengirimkan dan menempatkan objek dari client ke server (upload). Format penulisannya hampir mirip:

PUT Request-URI Version

Contohnya: PUT /gambar1.jpg HTTP/1.1

Maksud dari perintah diatas adalah sang client tadi meminta ijin kepada server untuk mengirimkan dan menempatkan sebuah file gambar ke server. Lalu responnya? Itu bergantung dari sang server. Jika memang server tersebut mengijikan client untuk mengupload file, maka file tadi akan disimpan kedalam server.

POST - Perintah ini hampir mirip dengan perintah PUT. Bedanya, perintah ini biasanya digunakan untuk mengirimkan objek-objek yang butuh penanganan lebih lanjut dari server. Contohnya form isian.

Format penulisan perintah ini adalah:

POST Request-URI Version

Contohnya: POST /sign-up.html HTTP/1.1

  • DELETE -Perintah ini digunakan untuk meminta server agar menghapus suatu objek. Format penulisannya juga sama seperti saudaranya yang lain, yaitu:

DELETE Request-URI Version

Sebagai contoh: DELETE /Images/gambar1.jpg HTTP/1.1. Hasilnya? Jika server bersangkutan memang memberikan ijin untuk menghapus, maka file gambar1.jpg yang ada di folder images akan dihapus dari server. Jika tidak di ijinkan? Tentu saja file itu tidak akan terhapus.



. HTTP (Hyper Text Transfer Protocol)

HTTP berbasis pada aktivitas request-response. Sebuah client, menjalankan satu program applikasi yang disebut browser, membangun sebuah koneksi denagn sebuah server dan mengirim sebuahrequest ke server dalam format sebuah metoda request. Server merespon dengan sebuah status line, termasuk pesan-pesan versi protocol dan kode sukses atau error, diikuti dengan pesan yang mengandung informasi server, informasi entitas, dan kemungkinan isi utama.

Sebuah transaksi HTTP dibagi atas empat langkah:

1. Browser membuka koneksi

2. browser mengirim request ke server

3. server mengirim respon ke browser

4. koneksi di tutup

dalam internet ,komunikasi HTTP biasanya berlangsung dalam koneksi TCP. Default portnya adalah 80, tetapi port lain dapat digunakan. Ini tidak menghindari HTTP diimplementasikan dalam protocol lainnya dalam internet, atau dalam jaringan lain. HTTP dianggap transportasi yang reliable dalam setiap protocol yang bergaransi dapat digunakan.

a. Operasi HTTP

Dalam banyak kasusu , komunikasi HTTP diawali oleh permintaan user akan informasi pada server tujuan. Dalam kasusu sederhana, permulaan koneksi diawali melalui koneksi tunggal antara user agen dan server tujuan seperti yang ditunjukkan pada gambar berikut:


Gambar 7. Koneksi HTTP

Dalam beberapa kasus, tidak terdapat hubungan langsung antara user agen dan server tujuan. Terdapat satu atau lebih perantara antara user agen dan server tujuan, seperti proxy, gateway, atau tunnel. Request dan respon dievaluasi oleh perantara dan diteruskan ke tujuan atau perantara lainnya dalam rantai request-respon seperti ditunjukkan gambar berikut:

Gambar 8. Koneksi HTTP Dengan Perantara

b. Parameter-parameter protocol

Beberapa dari protocol HTTP memiliki parameter seperti yang dijelaskan berikut:

  • HTTP version

HTTP menggunakan skema penomoran untuk menunjukkan versi dari protocol. Koneksi terjauh akan ditampilkan menurut kebijakan versi protocol. Nomor akan meningkat ketika terjadi perubahan signifikan dalam protocol, seperti perubahan format pesan. Versi dari pesan HTTP dikirim oleh sebuah field HTTP-version dalam baris pertama pesan. Field HTTP-version mengikuti format berikut (mengacu pada RFC 2822):

HTTP-Version = HTTP /1*DIGIT.1*DIGIT

  • Uniform Resources Identifiers (URI)

Uniform Resources Identifiers biasa mengacu sebagai alamat WWW dan kombinasi dari Uniform Resources Locators (URL) dan Uniform Resources Name (URN). Sebenarnya , URI adalah huruf yang mengindikasikan lokasi dan nama sumber dari server.

  • HTTP URL

Skema HTTP URL mengijinkan kita untuk meletakkan resources jaringan melalui protocol HTTP. Ini berbasis dari sintak generik URI dan dijelaskan dalam RFC 2396. sintak umumnya dalam skema URL adalah:

HTTP_URL = http // host [ : port ] [abs_path]

Nomor port bersifat optional. Jika tidak diisikan berarti defautnya port 80.

c. HTTP Message

Pesan HTTPterdiri dari field-field berikut:

  • Tipe pesan

Sebuah pesan HTTP dapat berupa request client atau respon server. Huruf berikut menandakan tipe pesan HTTP.

HTTP-Message = Request | Response

  • Message headers

Field header pesan HTTP dapat berupa salah satu hal-hal berikut:

Ø General header

Ø Request header

Ø Response header

Ø Entity header

  • Message body

Message body dapat mengacu sebagai entity body jika tidak terdapat pengkodeaan transfer yang diterapkan. Message body sederhananya membawa entity body yang relevan dengan request atau respon

  • Field-field general header

Field general header dapat mencakup pesan request dan respon. Field general header terbaru mencakup hal-hal sebagai berikut:

Ø Cache-control

Ø Connection

Ø Date

Ø Pragma

Ø Transfer-encoding

Ø Upgrade

Ø Via

d. Request

Sebuah pesan request dari sebuah client ke server mencakup metoda yang diterapkan pada resource, identifikasi dari source, dan versi protocol yang digunakan. Sebuah pesan request berformat sebagai berikut:

Request = request-line

*{general-header | request –header | entity-header}

CRLF

[message body]

e. Respon

Sebuah HTTP server mengembalikan respon setelah mengevaluasi client request. Field sebuah respon adalah sebagai berikut:

Request = request-line

*{general-header | request-header | entity-header}

CRLF

[message body]

f. Entity

Baik client atau server boleh mengirimkan entity dalam pesan request atau pesan respon, jika tidak maka tidak dikenali. Entity terdiri dari:

  • Field entity header
  • Body entity

. HTTP Server

Fungsi embedded web server ini dibatasi sebagai berikut:

  • melayani request untuk satu web page, dari 1-5 klien
  • isi web page hanya menunjukkan status dari beberapa variabel pada RAM dalam system mikrokontroler, yang bisa dengan mudah di-mirrorkan ke output port dari system mikrokontroler
  • lewat user interface pada web page ini kondisi variabel pada RAM tadi bisa diubah (begitu juga kondisi output port yang dimirrorkantersebut)
  • untuk sekuritas digunakan RSA, sehingga tidak semua dapat mengakses web page tersebut.

Web page akan berisi tampilan dengan elemen user interface (radio button) yang menunjukkan kondisi sinyal output digital tersebut sekaligus bisa dimanipulasi oleh pengguna dengan mengubah radio button mana yang terisi. Pengguna mengaktualkan perubahanyang telah dilakukan dengan menekan tombol ‘GO’ yang mengirimkan HTTP POST request kepada server. User interface berupa radio button, dibuat dengan HTML dengan sintaks

Akan dihasilkan radio button dengan kondisi terisi *(selected). Untuk kondisi tidak terisi, tinggal dihilangkan tulisan ‘CHECKED’. Maka implementasi pembuat web page-nya ialah untuk menyisipkan tulisan ‘CHECKED’ pada radio button yang sesuai dengan kondisi yang ingin ditunjukkan. Dengan menggunakan karakter $. Lokasi penempatan tulisan CHECKED itu bisa ditandai, dan selanjutnya rutin pembuat web pagetinggal menyalin karakter satu per satu dari template web pagenya ke packet buffer dengan kasus khusus jika bertemu karakter $ tadi. Tepat setelah karakter $ diisikan kode untuk identifikasi radio button tersebut, angka pertama ialah nomer flag dan angka kedua adalah radio button ini untuk kondisi on(‘1’) atau off (‘0’). Pada HTTP POST request, bagian Message-Body diawali oleh akhir header yang berisi dua buah CRLF. Message-Body ini berisi kondisi formulir web waktu pengguna menekan tombol ‘GO’. Message-Body yang akan dikirimakan seperti:

In1=1&in2=0&…&x=

Kata pertama adalah elemen UI yang mengirimkan data, dalam kasusu ini radio button yang ada duah buah, dan kata setelah tanda ‘=’ ialah data dari elemen UI tersebut. ‘&’ digunakan untuk memisahkan data dengan nama elemen UI berikutnya. Message-Body berakhir pada akhir segmen TCP (sebetulnya cara yang lebih baik ialah dengan melihat Contenth-Length), tapi untuk mempermudah proses pengerjaanmaka ada elemen UI bernama ‘x’ untuk menghentikan proses parsing.

Tidak ada komentar:

Posting Komentar