HTTP Status Code


HTTP adalah sebuah protokol website, kita biasanya membuka web browser (contoh mozila dsb) untuk membuka wesite mengirim request dari website ke web server dan kemudian menerima response dari web server.

sesi HTTP adalah urutan transaksi permintaan dan respons jaringan dengan menggunakan protokol HTTP. Sebuah klien HTTP akan memulai sebuah permintaan. Klien tersebut akan membuka sebuah koneksi Transmission Control Protocol|Transmission Control Protocol (TCP) ke sebuah port tertentu yang terdapat dalam sebuah host (umumnya port 80 atau 8080). Server yang mendengarkan pada port 80 tersebut akan menunggu pesan permintaan klien. Saat menerima permintaan, server akan mengirimkan kembali baris status, seperti “HTTP/1.1 200 OK”, dan pesan yang hendak diminta, pesan kesalahan atau informasi lainnya.

Berikut ini adalah contoh sebuah header website

date: Mon, 25 Jul 2016 05:46:31 GMT
content-encoding: gzip
server: gws
x-frame-options: SAMEORIGIN
content-type: text/html; charset=UTF-8
status: 200
cache-control: private, max-age=0
alt-svc: quic=”:443″; ma=2592000; v=”36,35,34,33,32,31,30,29,28,27,26,25″
alternate-protocol: 443:quic
x-xss-protection: 1; mode=block
expires: -1

HTTP request berkerja seperti email, memberitahukan kapan request dikirim, berisi header yang memberitahu apa yang harus dilakukan server dan bagaimana menghandle request tersebut.
Sekali sebuah request diterima, web server kemudian menentukan response apa yang akan diberikan.

untuk mengambil header website anda dapat menggunakan Simple REST Client milik chrome ,

Berikut http status code HTTP, sumber yang lebih lengkap disini

Ada 5 klasifikasi kode status, yang dimulai dari angka 1 – 5.

  • Kode dimulai dengan angka satu (1xx): Informational – Request received, continuing process
  • Kode dimulai dengan angka dua (2xx): Success -aksi yang di request oleh client sudah diterima, dimengerti dan di proses dengan sukses.
  • Kode dimulai dengan angka tiga (3xx): Redirection -menghandle semua masalah Redirect
  • Kode dimulai dengan angka empat (4xx): Client Error -menghandle status error di Client
  • Kode dimulai dengan angka lima (5xx) : Server Error – menghandle status error di Server

berikut penjabarannya diawah saya ambil , dari http://sahalaww.blogspot.co.id/2012/03/http-status-code.html . dibawah masih make HTTP/1.1 untuk sekarang versi http sudah ke versi 2.

1XX

100 Continue
Kode ini menunjukan bahwa server telah menerima request header yang dikirim, sehingga client dapat mengirimkan request body (contoh request POST atau GET).

contoh

Client ingin melakukan upload file sebesar 1GB. Untuk itu, sebelum mengirimkan file ke server, kita dapat melakukan cross check pada sisi server, apakah server dapat menerima file sebesar itu. Header yang kita kirim untuk hal ini tentunya adalah “Expect: 100-continue”. Jika memang server dapat menerima file sebesar itu, server akan memberikan kode status 100 continue, yang artinya OK dari sisi server. Selanjutnya, client dapat mengirimkan file “asli” sebesar 1GB-nya ke server melalui Request Body POST atau GET. Jika server tidak bisa menerima, server akan mengembalikan response status 413 (Request Entity Too Large). Di sini kita bisa melihat berapa sumber daya yang dapat kita hemat jika memang server tidak dapat menerima file dengan ukurang tertentu, kita tidak perlu mengirimkan file tersebut ke server.

101 Switching Protocols
Ini berarti client meminta server untuk mengganti protokol, dan server menyetujui untuk mengganti protokol.

102 Processing
Response ini mengindikasikan ke client jika request yang dikirim ternyata memerlukan waktu yang lama. Dengan dikirimnya kode ini, berarti server telah menerima request tetapi masih belum ada response yang tersedia karena request masih di proses. Jadi client dapat menghindari time out yang bakal di akibatkan dan client tahu bahwa paket request yang dikirim tidak hilang pada waktu dikirim melainkan response belum di kirim oleh server.

2XX

200 OK
Response standard yang menyatakan bahwa request HTTP berhasil (OK).

201 Created
Request telah selesai diproses dan suatu bentuk baru juga telah berhasil diciptakan. Jika hal tersebut yang terjadi, maka server harus memberikan kode response 201 disertai “Location Header” page baru yang berhasil di ciptakan.

202 Accepted
Request telah diterima untuk di proses, tetapi proses tersebut belum selesai. Hal ini berguna ketika kita akan memproses request yang bisa jalan pararel. Ketika kita menerima code 202, kita dapat mengirim request baru ke server sehingga banyak request yang dapat di jalankan server tanpa perlu menunggu request-request tersebut selesai.

203 Non-Authorative Information
Response code 203 mengindikasikan bahwa request telah diterima dan dipahami. Kode response ini dikirim oleh server lain sehingga server tidak tau secara pasti bahwa apakah benar request telah sukses atau belum sukses karena kode response berasal dari server lain.

204 No Content
Request telah diterima dan dimengerti oleh server, tetapi tidak ada informasi yang dapat di tampilkan ke client. (Blank Page )
Ketika kita mengembalikan kode response 204, pastikan tidak ada response data yang dibalikkan ke client. Dengan kata lain selalu mengembalikan baris kosong tepat setelah header field.

205 Reset Content
Server telah selesai melakukan proses dari request dan user agent harus melakukan reset terhadap semua field pada form. Response ini tidak mengembalikan data apapun. Tidak sama dengan kode 204, kode response ini digunakan untuk mempermudah user untuk melakukan request selanjutnya karena setelah request selesai di proses, field-field form sudah dikosongkan untuk submit informasi yang berbeda oleh user agent. Response ini sering digunakan pada backend ketika banyak form-form dilibatkan.

206 Partial Content
Server telah selesai memproses sebagian request GET. Request ini harus menyertakan Header Rangeataupun If-Range (request range dengan kondisi) yang mengindikasikan bagian mana yang akan di request. Biasanya Header Range ini digukana oleh tools seperti wget (request data pada linux/unix) yang dapat me-resume download yang berhenti, atau memotong 1 download menjadi beberapa bagian untuk streaming secara simultan. Ingat Download manager? Mereka menggunakan request tersebut.
Beberapa contoh download manager:

3XX

300 Multiple Choices
Kode status ini mengindikasikan bahwa halaman yang direquest tidak dapat lagi di akses dan sudah di pindahkan ketempat yang baru. Kemudian, server akan menyertakan list lokasi baru dimana user agent dapat memilih langsung salah satu lokasi yang paling relevan menurut user agent tersebut. User angent identik dengan browser.

301 Moved Permanently
Response dengan kode ini menunjukan bahwa informasi yang dipanggil sudah dipindahkan secara permanen ketempat yang baru oleh karena itu response server harus menyertakan link yang baru. Dianjurkan semua link static yang menuju ke halaman lama haruslah sebisa mungkin di ganti. Menilik masalah search engine, jika kita mengembalikan kode status ini, url yang akan di cache adalah url yang baru. Search engine akan menghapus link lama diganti dengan link yang baru.

302 Found
Sebuah status kode yang memberitahukan kepada client bahwa halaman website yang mereka kunjungi untuk sementara pindah ke lokasi yang baru tetapi dalam waktu yang tidak berapa lama, halaman website lama dapat di akses kembali. Response dari server juga harus menyertakan url yang baru.

Semua search engine mengenali kode response ini, mereka akan tetap terus mengecek link yang lama sebagai referensi halaman website yang akan mereka cache pada server.

303 See Other
Kode status ini mengindikasikan bahwa respon dari request client dapat ditemukan pada URL yang sudah di tentukan. Ini tidak berarti halaman yang diakses telah dipindahkan, tetapi halaman tersebut memang hanya menyediakan alamat URL yang dapat di tampilkan ke client.

304 Not Modified
Kode 304 sangat berhubungan erat dengan cache pada client. Status ini di kirimkan oleh server jika informasi yang disimpan pada sisi client sama dengan informasi yang ada pada sisi server “Not Modified”. Response ini tidak menyertakan informasi lain kecuali tanggal infomasi/data sehingga setelah respon header tidak ada infomasi lain yang disertakan.

305 Use Proxy
Kode ini menyatakan bahwa client yang akan mengakses halaman tersebut harus menggunakan proxy yang akan disertakan dalam respon header.

306 (Unused)
Kode ini untuk semantara di reserve untuk penggunaan selanjutnya.

307 Temporary Redirect
Kode ini identik dengan kode 302. Teman teman bisa menggunakan kedua respon kode ini untuk hal yang sama. Perbedaannya 307 tidak kompatibel dengan HTTP/1.0.

4XX

400 Bad Request
Karena syntax yang tidak dipahami oleh server, maka server mengembalikan kode status 400. Client tidak diperkenankan untuk mengirimkan request ulang ke server tanpa memperbaiki syntax.

401 Unauthorized Request dari user memerlukan otentifikasi. Ketika user mengisikan pasword yang tidak sesuai dengan yang dikenal server, maka server akan mengembalikan staus code tersebut.

402 Payment Required
Kode status ini di reserve dan masih belum di gunakan sekarang.

403 Forbidden
Kode status ini mengindikasikan bahwa halaman yang direquest oleh user merupakan halaman yang dilarang. Ada beberapa penyebab hal ini bisa terjadi, yang popular diantaranya:

User mengakses program yang dapat di eksekusi langsung (CGI misalnya) pada directory yang  terlarang. Bisa jadi karena tidak memenuhi hak akses.

User mencoba untuk mengakses sebuah directory tetapi directory tersebut relarang.

Mengakses halaman https hanya dengan http.

IP address user tidak terdapat dalam list server, dengan kata lain IP ditolak.

Terlalu banyak user yang terkoneksi ke server. Atau dengan kata lain limit user telah mencapai batas.

404 Not Found
Ini adalah response yang paling bayak kita temui. Coba akses sembarang url dari sebuat website, anda akan mengerti sendiri. 🙂

405 Method Not Allowed
Kode 405 mengindikasikan bahwa client mencoba mengirimkan method yang tidak dikenali oleh server. Method yang dikenali umumnya adalah POST dan GET.

406 Not Acceptable
Error Kode ini mengindikasikan bahwa response yang dikirim oleh server tidak dapat dimengerti oleh user agen/client. Biasanya client mengirimkan request menyertakan list dari ‘accept header’ atau tipe data apa aja yang dapat dimengerti oleh client. Dengan dikirimkannya kode error ini, berarti tipe data request oleh server tidak terdapat dalam list, sehingga kemungkinan tidak dapat di baca oleh client.

407 Proxy Authentication Required
Hampir sama dengan kode error 401, kode error ini berarti bahwa client harus melakukan verifikasi terlebih dahulu menggunakan proxy.

408 Request Timeout
Server mencapai timeout limit menunggu request client yang terlalu lama. Bukan karena prosesnya yang terlalu lama, tetapi lebih di karenakan request yang di harapkan tidak diterima sampai batas waktu yang ditentukan.

409 Conflict
Mengindikasikan bahwa request tidak dapat di proses. Sering terjadi data yang akan diproses bentrok dengan data yang sudah ada pada server.

410 Gone
Hampir sama dengan kode error 404, kode error ini mengindikasikan bahwa halaman website yang diakses tidak tersedia secara permanent. Jika kita alamat URL ini tidak akan dipakai bahkan dimasa yang akan datang, bisa menggunakan kode error ini, apabila kita tidak pasti, disarankan menggunakan kode error 410.

411 Length Required
Server mengharuskan user menyertakan besar size dari content. Apabila client tidak menyertakannya, server akan mengembalikan error ini.

412 Precondition Failed
Server tidak menemukan syarat-syarat yang disertakan request client.

413 Request Entity Too Large Request lebih besar dari batas limit size yang diperbolehkan oleh server.

414 Request-URI Too Long
URI yang di panggil oleh client terlalu panjang. 🙂

415 Unsupported Media Type
Tipe media yang di request oleh client tidak dikenali oleh server

416 Requested Range Not Satisfiable
Client merequest sebagian bagian dari file, tetapi server tidak dapat menyediakan bagian tersebut. Ilustrasinya, client merequest dokumen dengan line 1 – 10, tetapi server tidak dapat meresponse request dari client.

417 Expectation Failed
Server mengindikasikan bahwa request header dari client tidak memenuhi syarat minimal untuk di baca oleh server (Expect request-header).

5XX

500 Internal Server Error
Kode ini umumnya dikirim oleh para programmer Perl yang mengindikasikan bahwa server mengalami masalah dan tidak dapat memproses request yang diminta client.

501 Not Implemented
Kode error ini muncul karena server tidak dapat memenuhi syarat minimum diperlukan untuk sebuar request diproses

502 Bad Gateway
Error ini mengindikasikan bahwa server, biasanya merupakan proxy server,  tidak menerima response yang valid dari upstream server. Upstream server adalah server yang memberikan service tertentu kepada server lain.

503 Service Unavailable
Server untuk sementara waktu tidak tersedia (untuk sementara), biasanya ketika server sedang dalam keadaan maintenance atau sedang down.

504 Gateway Timeout
Server, biasanya merupakan proxy server, tidak menerima response dari upstream server dalam kurum waktu yang sudah di tentukan. Upstream server adalah server yang memberikan service tertentu kepada server lain.

505 HTTP Version Not Supported
Server tidak dapat membaca versi dari protokol HTTP yang di request oleh client

semoga berguna 🙂

referensi:

Iklan

tinggalkan pesan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: