«

»

Jul 01

HTTP – Hypertext Transfer Protocol

Terdapat sejumlah protokol yang dapat berjalan di atas TCP/IP. Bila kita menginginkan sebuah protokol standar untuk mengirimkan data sensor, kita dapat bekerja dengan banyak divais dan aplikasi, dibanding kita membuat protokol khusus sendiri. Sejauh ini, satu protokol standar yang penting adalah HTTP – Hypertext Transfer Protocol, protokol dari World Wide Web. HTTP menjelaskan bagaimana sebuah client ber-interaksi dengan sebuah server, dengan mengirimkan request messages dan menerima response messages melalui TCP/IP.
Web browser adalah HTTP client yang paling populer, namun kita dapat dengan mudah menulis client sendiri, juga server sendiri. Bila kita menggunakan sebuah web browser untuk meng-akses sebuah divais, divais memiliki role dari sebuah web server, menyediakan sebuah web service melalui internet.

Sebuah server memiliki sejumlah resource, yang dapat berupa dokumen (halaman HTML), hasil pengukuran sensor, atau konfigurasi dari sebuah divais. Ketika kita merancang sebuah web service, kita perlu memutuskan resource yang mana yang akan di-ekspose ke dunia.

HTTP menggunakan Uniform Resource Identifiers (URI) untuk memberitahu server mengenai resource mana yang client ingin read, write, create atau delete. Kita mengetahui URI saat browsing, sebagai contoh:

  • http://www.example.com/index.html
  • http://www.example.com/temperatures
  • http://www.example.com/temperatures/actual
  • http://www.example.com:50000/temperatures/actual
  • http://www.example.com/temperatures?alarm=none
  • http://www.example.com/temperatures?alarm=high
  • http://www.example.com/temperatures?alarm=low
  • http://www.example.com/valve/target

Sebuah URI menunjukkan skema (contoh: http), host (contoh: www.example.com), port opsional (misal: 50000), dan path (contoh: /temperatures/actual) terhadap resource yang dimiliki dan dikelola oleh host ini. Opsi lain, sebuah URI dapat berisi sebuah query (contoh: alarm=high) setelah sebuah karakter tanda tanya (?) yang mengikuti path.

Untuk protokol HTTP, port 80 digunakan sebagai default, bila menggunakan port lain, port tersebut harus dituliskan secara eksplisit. Dalam HTTP, path disebut request URI, yang menyebutkan target resource dari sebuah HTTP request.

Terdapat sejumlah HTTP request yang dapat dikirim oleh sebuah client, namun yang paling populer adalah GET – untuk membaca sebuah resource, PUT – untuk menulis kepada sebuah resource, POST – untuk membuat sebuah resource, dan DELETE – untuk menghapus sebuah resource. Web browser umumnya menggunakan GET request.