Putri
Nim : 2116001
Mata kuliah : Web Service (A)
HTTP, sebagai protokol yang menggunakan request dan response menjadikan aplikasi
web bergantung kepada siklus ini untuk menghasilkan dokumen yang ingin diakses oleh
pengguna. Aplikasi web yang kita kembangkan harus memiliki satu cara untuk membaca
HTTP Request dan mengembalikan HTTP Response ke pengguna. Untuk menambahkan
aplikasi web kita kemudian menggunakan penghubung antar web server dengan program yang
dikenal dengan nama CGI (Common Gateway Interface). CGI diimplementasikan pada web
server sebagai antarmuka penghubung antara web server dengan program yang akan
menghasilkan konten secara dinamis.
Berikut ini merupakan proses request dan response :
1. HTTP Request.
HTTP Request dihasilkan dari http.Server, dan merupakan objek http.IncomingMessage.
Objek http.IncomingMessage merupakan objek yang unik, karena objek ini dapat dihasilkan
oleh dua buah fungsi, dan masing-masing fungsi akan memberikan property yang berbeda
kepada objek. Sebagai hasil keluaran dari http.Server, objek http.IncomingMessage memiliki
beberapa property yang perlu ditelaah, yaitu:
IncomingMessage.method Mengambil method(GET,
POST, dst) sebagai string.
2
var http = require('http');
3 var port = process.env.port || 1337;
4
var onRequest = function (request, response) {
5
console.log(request.headers);
6 };
7
var server = http.createServer(onRequest);
8 server.listen(port, 'localhost');
9
Jika menjalankan kode di atas dan mengunjungi halaman pada http://localhost:1337/ maka kita
akan melihat cetakan JSON pada console seperti berikut:
1 {
2 host: 'localhost:1337',
3 connection: 'keep-alive',
4 accept: '*/*',
5 'user-agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/41.0.2
6 'accept-encoding': 'gzip, deflate, sdch',
7 'accept-language': 'id,en;q=0.8,en-US;q=0.6',
8 cookie: 'thelia_cart=546c25890d8bc7.53190152',
9 }
Pada sebuah kode server sederhana, penulisan respon akan dilakukan seperti berikut:
1. Panggil writeHeader untuk menuliskan HTTP Response Starting Line dan Header.
2. Panggil write untuk menuliskan entity body, jika diperlukan kita juga dapat
mengirimkan konten file dari sini.
3. Panggil end untk mengirimkan kepada pengguna.
kita dapat menggunakan modul fs untuk membaca file dan menuliskan kontennya seperti
berikut:
1 var fs = require('fs');
2 var file = fs.createReadStream('./index.html');
3 var content = '';
4
5 file.on('data', function (data) {
6 content += data;
7 });
8
9 file.on('end', function () {
10 result = content;
11
12 response.writeHead(200, 'OK', {
13 'Content-Type': 'text/html',
14 'Content-Length': result.length
15 });
16
17 response.write(result);
18 response.end();
19 });