2.5. Hypertext Transfer Protocol HTTP
2.5.1. Pengertian Hypertext Transfer Protocol HTTP
Hypertext Transfer Protocol HTTP adalah suatu protokol untuk
menentukan aturan yang harus diikuti oleh web browser dalam meminta atau mengambil suatu dokumen yang berasal dari sebuah server tertentu.
Web browser biasanya memulai permintaan dengan membuat hubungan
TCPIP ke port 80 port default dari HTTP. HTTP digunakan untuk mentransfer dokumen dalam World Wide
Web WWW, termasuk protokol ringan, tidak berstatus dan generik yang
dapat dipergunakan pada berbagai macam dokumen. Pengembang standar HTTP dilaksanakan oleh Konsorium World Wide Web World Wide
Consortium W3C dan juga Internet Engineering Task Force IETF yang
menghasilkan publikasi beberapa dokumen Request for Comments RFC, antara lain RFC 1945 yang mendefinisikan tentang HTTP1.0 dan RFC
2616 yang mendefinisikan tentang HTTP1.1
2.5.2. HTTP version 2.5.2.1.
HTTP0.9
HTTP0.9 adalah versi pertama dari HTTP yang diperkenalkan pada tahun 1991. Versi ini merupakan versi mentah dari HTTP yang
dikenal saat ini, yaitu HTTP1.0 dan HTTP1.1. Versi ini masih sangat terbatas dan belum mencakup elemen-elemen web interaktif.
2.5.2.2. HTTP1.0
HTTP1.0 diperkenalkan pada tahun 1996 ketika internet juga mulai banyak digunakan. Perubahan HTTP dari 0.9 ke 1.0 dilakukan
untuk mengakomodasi tipe-tipe dokumen yang hendak dikirim beserta enkoding yang dipergunakan dalam pengiriman data dokumen. Pada
HTTP1.0 masih menggunakan koneksi terpisah untuk setiap dokumen.
Protokol HTTP berdasar pada paradigma request dan respon. Client
membuat sebuah koneksi dengan server lalu mengirimkan permintaan pada server. Kemudian server memberikan respon sesuai
dengan apa yang diminta oleh client disertai status pesan yang diberikan.
2.5.2.3. HTTP1.1
HTTP1.1 merupakan versi yang paling banyak digunakan saat ini yang diperkenalkan sejak tahun 1997. Salah satu keunggulan dari
HTTP1.1 yaitu dapat menggunakan koneksi yang sama untuk melakukan transaksi. Dengan demikian, HTTP1.1 bisa lebih cepat
karena memang tidak perlu untuk membuang waktu untuk koneksi berulang-ulang.
2.5.3. Metode Umum HTTP
Menurut RFC 2616, pada HTTP ada beberapa metode dalam melakukan request dan respon antara client dan server, seperti di bawah
ini: 1.
GET, mengambil informasi dari server sesuai alamat URL yang sudah diberikan dan tidak berpengaruh pada data yang lain.
2. POST, mengirim data ke server yang dituju untuk diproses.
3. HEAD, sama dengan metode GET tetapi hanya mentransfer baris
status dan bagian header. 4.
PUT, mengunggah representasi sumber tertentu.
5. DELETE, meminta pada server untuk menghapus sumber tertentu.
6. OPTIONS, mengembalikan metode HTTP yang mendukung
server , pilihan komunikasi yang tersedia pada requestrespon.
7. CONNECT, mengubah koneksi permintaan untuk memfasilitasi
komunikasi terenkripsi. 8.
TRACE, menganalisis koneksi antara client dan server dalam melakukan request dan response.
2.5.4. Kode Status Respon HTTP
Saat server memberikan respon terhadap sebuah permintaan HTTP ada sebuah pesan berupa kode angka 3 digit yang dikirimkan pada client.
Digit pertama pada kode status itu menentukan salah satu dari lima kelas respon yang terdapat di bawah ini:
1. 1xx Informational, kelas dari kode status ini menunjukkan
respon sementara. a.
100 Continue, client diperbolehkan untuk melanjutkan permintaannya.
b. 101 Switching Protocols, server memahami dan bersedia
untuk memenuhi permintaan client. 2.
2xx Success, permintaan telah berhasil. Informasi yang kembali disesuaikan dengan metode yang digunakan dalam melakukan
permintaan. a.
200 OK, permintaan telah berhasil.
b. 201 Created, permintaan telah terpenuhi dan
menghasilkan sumber daya yang baru dibuat. c.
202 Accepted, permintaan telah diterima untuk diproses, akan tetapi pengolahanpemrosesan belum selesai.
d. 203 Non-Authoritative Information, tidak diperlukan dan
hanya sesuai apabila respon sebaliknya akan OK kode status 200
e. 204 No Content, server telah memenuhi permintaan
tersebut, tetapi tidak perlu mengembalikan isi dari entitas tersebut atau bahkan memperbaharuinya.
f. 205 Reset Content, server telah memenuhi permintaan
dan client harus melihat ulang dokumen yang sudah dikirim sebagai permintaan.
g. 206 Partial Content, server telah memenuhi permintaan
GET secara parsial untuk sumber daya. 3.
3xx Redirection, perlunya untuk mengambil tindakan lebih lanjut oleh client untuk memenuhi permintaan.
a. 300 Multiple Choices, client dapat memilih representasi
yang disukai dan dapat mengarahkan permintaan ke lokasi tersebut.
b. 301 Moved Permanently, sumber daya yang diminta
telah ditetapkan secara permanen. c.
302 Found, sumber daya yang diminta sementara berada di bawah URI Uniform Resource Identifier yang berbeda.
d. 303 See Other, respon terhadap permintaan dapat
ditemukan pada URI Uniform Resource Identifier yang berbeda menggunakan metode GET.
e. 304 Not Modified, server memberikan respon pada client
yang melakukan permintaan GET bersyarat dan akses diperbolehkan akan tetapi dokumen belum dimodifikasi.
f. 305 Use Proxy, sumber yang diminta harus diakses
melalui proxy yang sudah diberikan. g.
306 Unused, digunakan pada versi sebelumnya dan sudah tidak lagi digunakan.
h. 307 Temporary Redirect, sumber daya yang diminta
untuk sementara dialihkan pada URI Uniform Resource Identifier
yang berbeda. 4.
4xx Client Error, kesalahan yang dilakukan oleh client dalam melakukan permintaan, sehingga server memberikan penjelasan
tentang situasi kesalahan tersebut. a.
400 Bad Request, permintaan tidak dapat dipahami oleh server
. b.
401 Unauthorized, permintaan memerlukan otentikasi dari pengguna.
c. 402 Payment Required, kode ini disediakan untuk
penggunaan masa depan. d.
403 Forbidden, server memahami permintaan, tetapi menolak untuk memenuhinya.
e. 404 Not Found, server tidak menemukan apa-apa yang
cocok sesuai dengan request yang diminta client. f.
405 Method Not Allowed, metode yang ditetapkan dalam melakukan request tidak diperbolehkan.
g. 406 Not Acceptable, sumber daya yang diidentifikasi
oleh permintaan hanya mampu menghasilkan respon tidak dapat diterima sebagai sebuah permintaan.
h. 407 Proxy Authentication Required, kode ini mirip
dengan kode 401 tidak sah, tapi menunjukkan bahwa client
harus terlebih dahulu mengotentikasikan dirinya dengan proxy.
i. 408 Request Timeout, client tidak menghasilkan
permintaan pada saat server standby. j.
409 Conflict, permintaan tidak dapat diselesaikan karena konflik pada waktu yang bersamaan.
k. 410 Gone, sumber daya yang diminta tidak tersedia pada
server dan tidak ada alamat yang dikenal.
l. 411 Length Required, server menolak untuk menerima
permintaan tanpa memenuhi syarat tertentu. m.
412 Precondition Failed, prasyarat yang diberikan ketika dievaluasi dan diuji ternyata palsu.
n. 413 Request Entity Too Large, server menolak untuk
memproses permintaan karena entitas permintaan lebih dari kemampuan server dalam melakukan proses.
o. 414 Request-URI Too Long, server menolak untuk
melayani permintaan karena request URI Uniform Resource Identifier
lebih panjang, sehingga sulit untuk ditafsirkan.
p. 415 Unsupported Media Type, server menolak untuk
melayani permintaan karena format yang tidak mendukung. q.
416 Request Range Not Satisfiable, server harus kembali memberikan respon jika permintaan termasuk pada rentang
dan tidak saling tumpang tindih. r.
417 Expectation Failed, harapan untuk melayani permintaan tidak dapat dipenuhi pada server berikutnya.
5. 5xx Server Error, kesalahan pada server karena tidak mampu
untuk merespon permintaan yang masuk. a.
500 Internal Server Error, server mengalami kondisi yang tidak terduga sehingga tidak dapat memenuhi
permintaan. b.
501 Not Implemented, server tidak mendukung fungsi yang diperlukan dalam memenuhi permintaan.
c. 502 Bad Gateway, server yang sementara bertindak
sebagai gateway atau proxy tidak mampu memberikan respon yang valid dalam memenuhi permintaan.
d. 503 Service Unavailable, server saat ini tidak dapat
menangani permintaan. e.
504 Gateway Timeout, server sementara bertindak sebagai gateway atau proxy tidak menerima respon tepat
waktu. f.
505 HTTP Version Not Supported, server tidak mendukung versi protokol HTTP yang digunakan dalam
permintaan.
2.6. TCP : Transmission Control Protocol
2.6.1. Pengertian TCP
Transmission Control Protocol TCP merupakan salah satu
protokol terpenting pada layer transport selain User Datagram Protocol UDP. TCP memiliki beberapa karakteristik, yaitu connection oriented,
reliable dan byte stream service.
TCP merupakan protokol yang bersifat connection oriented. Artinya sebelum memulai proses transmisi data terjadi, dua aplikasi TCP
harus melakukan pertukaran control informasi handshaking. TCP juga bersifat reliable karena menerapkan fitur deteksi kesalahan dan retransmisi
apabila ada data yang rusak, sehingga keutuhan data dapat terjamin. Sedangkan byte stream service artinya paket akan dikirimkan ke tujuan
secara berurutan sequencing.
2.6.2. TCP Header
Data TCP dirumuskan pada sebuah datagram IP seperti yang terdapat pada gambar 2.7 di bawah ini:
Gambar 2. 7 : Enkapsulasi TCP pada datagram IP