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
request
respon. 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