apa itu HTTP? HTTP adalah kepanjangan dari HypertText Transfer Protokol
Mungkin and pernah mengunjungi sebuah situs tapi error 404 atau kode lainnya berikut pembahasannya:
Beberapa kode status ini sering ditemui ketika kita surfing internet. List di bawah, merupakan list standard HTTP/1.1
Ada 5 klasifikasi kode status, yang dimulai dari angka 1 - 5.
Kode dimulai dengan angka satu (1XX) bersifat informatif.
Kode dimulai dengan angka dua (2XX) mengindikasikan bahwa aksi yang di request oleh client sudah diterima, dimengerti dan di proses dengan sukses.
Kode dimulai dengan angka tiga (3XX) menghandle semua masalah Redirect
Kode dimulai dengan angka 4 (4XX) menghandle status error di Client
Kode dimulai dengan angka 5 (5XX) menghandle status error di Server
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).
Masih bingung? jika iya, mari kita liat bersama sama contoh casenya.
Client ingin melakukan upload file sebesar 1GB. Untuk itu, sebelum megirimkan 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. Ada yang masih bingung untuk 201? mari kita diskusi di comment.
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. Alias 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 agen tersebut. User angentidentik 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.