BAB III –APPLICATION LAYER PADA TCP/IP 22
Client Server Client Server
Control Control Data transfer Data transfer
Process Process Process Process
220 (Service ready)
USER forouzan
331(User name OK. Password?)
PASS ******
230 (User login OK)
PORT 8888
150(Data connection will open shortly)
LIST/usr/user/report
125 (Data connection OK)
List of files or directories
DATA
TRANSFER
List of files or directories
226 (Closing data connection)
QUIT
221 (Service closing)
Control connection Data connection
Gambar 3.28: Pemanggilan daftar item dalam directory dari server pada FTP
3.5. HTTP (HyperText Transfer Protocol)
Aplikasi HTTP (HyperText Transfer Protocol) merupakan mekanisme standar
untuk mengakses data pada web. Aplikasi HTTP memungkinkan digunakan untuk
mentransfer data berbentuk:
1. Plaintext
2. Hypertext
3. Audio
4. Video
5. Dan lain-lain
Namun demikian, HTTP paling efisien digunakan untuk menntransfer data
hypertext yang secara sederhana dapat dikatakan sebagai kombinasi antara
aplikasi SMTP dan FTP. Sebagaimana dalam SMTP dan FTP, dalam HTTP
clients akan mengirim pesan-pesan permintaan (requests) ke server dan servers
akan mengrimkan respon (response) ke client.
Gambaran mengenai pesan permintaan (requests) yang dikirim oleh client ke
server dan respon (response) dari servers ke client ditunjukkan pada Gambar 3.29.
BAB III –APPLICATION LAYER PADA TCP/IP 23
Gambar 3.29: Permintaan (requests) dan respon (response) pada HTTP
3.5.1. Message Pada HTTP
Sebagaimana telah diketahui bersama, bahwa proses komunikasi antar mesin
dapat dilaksanakan melalui pesan (message). Pesan terdiri atas 2 macam, yaitu:
1. Permintaan (request)
2. Respon (response)
Gambaran mengenai pesan permintaan (request) dan respon (response) pada
HTTP ditunjukkan pada Gambar 3.30.
Gambar 3.30: Pesan request dan response pada HTTP
[Link]. Request Message Pada HTTP
Pesan permintaan (request message) pada HTTP memiliki format tertentu, yaitu
dapat terdiri atas empat bagian, yaitu:
1. Baris permintaan (request line)
2. Kepala (header)
3. Baris kosong (blank line)
BAB III –APPLICATION LAYER PADA TCP/IP 24
4. Tubuh (body), bagian inibersifat opsional (dapat digunakan atau
sebaliknya)
Gambaran mengenai bagian-bagian pesan request pada HTTP tersebut
ditunjukkan pada Gambar 3.31.
Gambar 3.31: Bagian-bagian pesan request pada HTTP
Bagian baris permintaan (request line) memuat definisi sebagai berikut:
1. Tipe permintaan (request type), yaitu sebuah kategori pesan
2. Sumber (resource) URL)
3. Versi HTTP, misal HTTP versi 1.1
Setiap bagian dalam request line dipisahkan oleh sebuah spasi (space). Bagian-
bagian request line tersebut ditunjukkan pada Gambar 3.32. Sedangkan sumber
(resource) untuk URL ditunjukkan pada Gambar 3.33.
Gambar 3.32: Bagian-bagian request line pada HTTP
BAB III –APPLICATION LAYER PADA TCP/IP 25
Gambar 3.33: Resource URL pada HTTP
Pada HTTP, request dapat dikirim dalam tujuh macam metode, yaitu:
1. GET, yaitu untuk mendapatkan dokumen dari server
2. HEAD, yaitu untuk mendapatkan informasion tentang dokumen dari
server
3. POST, yaitu untuk memberikan informasi dari client ke server
4. PUT, yaitu untuk menyimpan dokumen baru atau hasil update pada server
5. COPY, yaitu untuk meng-copy file ke lokasi lain
6. DELETE, yaitu untuk menghapus dokumen dari server
7. LINK, yaitu untuk membuat link dari dokumen ke lokasi yang lain
[Link]. Response Message Pada HTTP
Pesan respon (response message) pada HTTP memiliki format tertentu, yaitu
dapat terdiri atas empat bagian, yaitu:
1. Baris status (status line)
2. Kepala (header)
3. Baris kosong (blank line)
4. Tubuh (body), bagian inibersifat opsional (dapat digunakan atau
sebaliknya)
Gambaran mengenai bagian-bagian response message pada HTTP tersebut
ditunjukkan pada Gambar 3.34.
BAB III –APPLICATION LAYER PADA TCP/IP 26
Gambar 3.34: Bagian-bagian response message pada HTTP
[Link].1. Status Line Response Message Pada HTTP
Bagian baris status (status line) dalam response message memuat definisi berikut:
1. Versi HTTP, misal HTTP versi 1.1
2. Kode status (status code), mirip pada FTP
3. Frasa status (status phrase), yaitu deskripsi teks untuk kode status
Setiap bagian dalam baris status (status line) dipisahkan oleh sebuah spasi
(space). Bagian-bagian baris status tersebut ditunjukkan pada Gambar 3.35.
Gambar 3.35: Bagian-bagian status line pada HTTP
Kode, frasa, dan deskripsi status respon (response status) yang dikirimkan oleh
server ke client sebagai respon pesan permintaan pada HTTP, jika sukses
(success) ditampilkan dalam Tabel 3.6.
Tabel 3.6: Kode, frasa, dan deskripsi status respon jika sukses pada HTTP
Code Phrase Description
Success
200 OK The request was successful
201 Created A new URL is created
202 Accepted The request is accepted, but is not immediately acted upon
204 No content There is no content in the body
BAB III –APPLICATION LAYER PADA TCP/IP 27
Kode, frasa, dan deskripsi status respon (response status) yang dikirimkan oleh
server ke client sebagai respon pesan permintaan pada HTTP, jika permintaan
tersebut dialihkan (redirect) ditampilkan dalam Tabel 3.7.
Tabel 3.7: Kode, frasa, dan deskripsi status respon jika redirect pada HTTP
Code Phrase Description
Redirection
301 Multiple Choices The requested URL refers to more than one resource
302 Moved permanently The requested URL is no longer used by the server
304 Moved temporarily The requested URL has moved temporarily
Kode, frasa, dan deskripsi status respon (response status) yang dikirimkan oleh
server ke client sebagai respon pesan permintaan pada HTTP, jika client
mengalami kesalahan (client error) ditampilkan dalam Tabel 3.8.
Tabel 3.8: Kode, frasa, dan deskripsi status respon jika client error pada HTTP
Code P h ra s e D e s c r ip tio n
C lie n t E rr o r
400 B a d re q u e s t T h e re is a s y n ta x e rro r in th e re q u e s t
401 U n a u th o riz e d T h e re q u e s t la c k s p ro p e r a u th o riz a tio n
403 F o rb id d e n S e rv ic e is d e n ie d
404 N ot Found T h e d o c u m e n t is n o t fo u n d
405 M e th o d n o t a llo w e d T h e m e th o d is n o t s u p p o rte d in th is U R L
406 N o t a c c e p ta b le T h e fo rm a t re q u e s te d is n o t a c c e p ta b le
Kode, frasa, dan deskripsi status respon (response status) yang dikirimkan oleh
server ke client sebagai respon pesan permintaan pada HTTP, jika terjadi
kesalahan pada server (server error) ditampilkan dalam Tabel 3.9.
Tabel 3.9: Kode, frasa, dan deskripsi status respon jika server error pada HTTP
Code Phrase Description
Server Error
500 Internal Server Error There is an error, such as a crash, in the server site
501 Not implemented The action requested cannot be performed
503 Service unavailable The service is temporarily unavailable, but may be requested in the future
BAB III –APPLICATION LAYER PADA TCP/IP 28
[Link].2. Response Header Pada HTTP
Header yang ada dalam pesan respons pada HTTP digunakan untuk mengubah
informasi tambahan di antara client dan server. Format header tersebut adalah
memuat bagian-bagian berikut:
1. Nama header (header name)
2. Sebuah tanda titik dua (colon) dan sebuah spasi (space)
3. Nilai header (header value)
Format header pesan respons pada HTTP tersebut ditunjukkan pada Gambar 3.36.
Gambar 3.36: Format header pesan respons pada HTTP
Response header pada HTTP dapat dibedakan ke dalam empat kategori, yaitu:
1. General header
2. Request header
3. Response header
4. Entity header
Keempat kategori response header tersebut ditunjukkan pada Gambar 3.37.
Gambar 3.37: Empat kategori response header
Pesan-pesan permintaan (request messages) dapat hanya memuat:
1. General header
BAB III –APPLICATION LAYER PADA TCP/IP 29
2. Request header
3. Entity header
Dan, pesan-pesan respon (response messages) dapat hanya memuat:
1. General header
2. Response header
3. Entity header
General header memberikan informasi umum mengenai pesan. Daftar header dan
deskripsinya dalam response header pada HTTP untuk kategori general header
ditampilkan dalam Tabel 3.10.
Tabel 3.10: Header dan deskripsi dalam response header kategori general header
pada HTTP
Header Description
Cache-control Specifies inform ation about caching
Connection Shows whether the connection should be closed or not
Date Shows the current date
M IM E-version Shows the M IM E version used
Upgrade Specifies the preferred com m unications protocol
Request header memberikan informasi tentang konfigurasi clients dan format
dokumen yang digunakan. Daftar header dan deskripsinya dalam request header
pada HTTP ditampilkan dalam Tabel 3.11.
Tabel 3.11: Request header dan deskripsi pada HTTP
Header Description
Accept Shows the media format the client can accept
Accept-charset Shows the character set the client can handle
Accept-encoding Shows the encoding scheme the client can handle
Accept-language Shows the language the client can accept
Authorization Shows what permissions the client has
From Shows the email address of the user
Host Shows the host and port number of the client
If-modified-since Send the document if newer than specified date
If-match Send the document only if it matches a given tag
BAB III –APPLICATION LAYER PADA TCP/IP 30
Response header memberikan informasi konfigurasi server dan lainnya tentang
request. Daftar header dan deskripsinya dalam response header pada HTTP
ditampilkan dalam Tabel 3.12.
Tabel 3.12: Response header dan deskripsi pada HTTP
Header Description
Accept-range Shows if server accepts the range requested by client
Age Shows the age of the document
Public Shows the supported list of methods
Retry-after Specifies the date after which the server is available
Server Shows the server name and version number
Entity header memberikan informasi berkaitan dengan bagian tubuh dokumen.
Daftar header dan deskripsinya dalam entity header pada HTTP ditampilkan
dalam Tabel 3.13.
Tabel 3.13: Response header dan deskripsi pada HTTP
Header Description
Allow List valid methods that can be used with a URL
Content-encoding Specifies the encoding scheme
Content-language Specifies the language
Content-length Shows the length of the document
Content-range Specifies the range of the document
Content-type Specifies the media type
Etag Gives an entity tag
Expires Give the date and time when contents change
Last-modified Gives the date and time of the last change
Location Specifies the location of the created or moved document
3.5.2. Contoh HTTP
Tiga buah gambar berikut ini, menunjukkan contoh transfer pesan, yaitu pesan
permintaan (request) dari client ke server dan pesan respon (response) dari server
ke client menggunakan HTTP.
BAB III –APPLICATION LAYER PADA TCP/IP 31
Gambar 3.38 menunjukkan pengiriman pesan metoda GET dari client ke server
dan respon yang dikirimkan dari server ke client. Gambar 3.39 menunjukkan
pengiriman pesan metoda HEAD dari client ke server dan respon yang dikirimkan
dari server ke client. Gambar 3.40 menunjukkan pengiriman pesan metoda POST
dari client ke server dan respon yang dikirimkan dari server ke client.
Selanjutnya, Gambar 3.41 menunjukkan proses transaksi HTTP antara client dan
server.
Gambar 3.38: Pengiriman pesan metoda GET dan responnya pada HTTP
Gambar 3.39: Pengiriman pesan metoda HEAD dan responnya pada HTTP
BAB III –APPLICATION LAYER PADA TCP/IP 32
Gambar 3.40: Pengiriman pesan metoda POST dan responnya pada HTTP
Client Send Processing Server
Response Request! Request! Send
Received Initializes the Response!
transaction
Sending Sending
Request Response
Gambar 3.41: Proses transaksi HTTP antara client dan server