Memahami HTTP Header
Saya perlu menyegarkan kembali pengetahuan saya tentang HTTP Header dan memutuskan untuk mencatatnya. Ini adalah catatan saya tentang HTTP Header.
Apa itu HTTP Header?
- Header HTTP adalah bidang permintaan atau respons HTTP yang meneruskan konteks dan metadata tambahan tentang permintaan atau respons.
- Header tidak peka huruf besar-kecil
- Ini adalah bagian integral dari komunikasi HTTP ini
Judul permintaan :
- yang berisi informasi tentang sumber daya yang akan diambil.
- Tidak semua header yang dapat muncul dalam permintaan disebut sebagai header permintaan menurut spesifikasi. Misalnya,
Content-Typeheader disebut sebagai header representasi .
- menyimpan informasi tentang respons (seperti lokasinya)
- berisi informasi tentang badan sumber daya, seperti tipe MIME -nya , atau pengodean/kompresi yang diterapkan.
- Header respons, seperti
Age,LocationatauServerdigunakan untuk memberikan konteks respons yang lebih detail.
- berisi informasi representasi-independen tentang data payload, termasuk panjang konten dan pengkodean yang digunakan untuk transportasi.
- Mungkin ada dalam permintaan HTTP dan pesan tanggapan.
Untuk tujuan mendefinisikan perilaku cache dan proxy non-caching, kami membagi header HTTP menjadi dua kategori:
- Header end-to-end harus ditransmisikan ke penerima akhir permintaan atau respons.
- Header end-to-end dalam respons harus disimpan sebagai bagian dari entri cache dan dikirimkan dalam respons apa pun yang dibentuk dari entri cache.
- Header hop-by-hop hanya berarti untuk satu koneksi tingkat transportasi dan tidak disimpan oleh cache atau diteruskan oleh proxy.
- Koneksi
- Berusaha agar hidup
- Publik
- Proxy-Otentikasi
- Transfer-Encoding
- Meningkatkan
Contoh
Ada banyak header HTTP yang berbeda. Mari kita lanjutkan dengan sebuah contoh.
GET /home.html HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://developer.mozilla.org/testpage.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"
Cache-Control: max-age=0
Host: informasi tentang situs yang diminta bersama dengan nomor port opsional. (default: 80)
User-Agent: berisi informasi tentang agen pengguna yang membuat permintaan.
Terima: digunakan untuk menentukan jenis media tertentu yang dapat diterima untuk respons. Misalnya, browser menggunakan nilai yang berbeda dalam permintaan saat mengambil lembar gaya, gambar, video, atau skrip CSS.
Accept-Language: bahasa tanggapan yang diharapkan masuk. diperbolehkan beberapa bahasa dipisahkan dengan koma. Accept-Encoding: biasanya algoritma kompresi) yang dapat dipahami klien. ( ) Perujuk: mengizinkan klien untuk menentukan alamat (URI) sumber daya dari mana URL diminta.Accept-Language: de-CHdeflate, gzip
Koneksi: k eep-alive berarti setiap permintaan selanjutnya ke server akan menggunakan koneksi yang sama. c loss akan secara otomatis menutup koneksi antara host dan server, yang berarti bahwa setiap permintaan selanjutnya harus membuat koneksi TCP baru.
Dan responnya mungkin seperti itu
200 OK
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Mon, 18 Jul 2016 16:06:00 GMT
Etag: "c561c68d0ba92bbeb8b0f612a9199f722e3a621a"
Keep-Alive: timeout=5, max=997
Last-Modified: Mon, 18 Jul 2016 02:36:04 GMT
Server: Apache
Set-Cookie: mykey=myvalue; expires=Mon, 17-Jul-2017 16:06:00 GMT; Max-Age=31449600; Path=/; secure
Transfer-Encoding: chunked
Vary: Cookie, Accept-Encoding
X-Backend-Server: developer2.webapp.scl3.mozilla.com
X-Cache-Info: not cacheable; meta data too large
X-kuma-revision: 1085259
x-frame-options: DENY
Access-Control-Allow-Origin: Saat Situs A mencoba mengambil konten dari Situs B, Situs B dapat mengirim header respons Access-Control-Allow-Origin untuk memberi tahu browser bahwa konten halaman ini dapat diakses dari asal tertentu. Praktik terbaik adalah tidak memberikan * untuk tajuk ini. Alih-alih *, berikan saja server Anda.
Etag: Ini adalah tag entitas. Digunakan sebagai pengidentifikasi untuk versi tertentu dari sumber daya . Jika sumber daya pada URL tertentu berubah, Etagnilai baru harus dihasilkan. Perbandingan keduanya dapat menentukan apakah dua representasi sumber daya adalah sama. Untuk penggunaan silahkan cek link ini.
Transfer-Encoding: Menentukan bentuk penyandian. Ada nilai yang berbeda seperti chunked, compress, deflate dan gzip. Beberapa nilai diperbolehkan melalui pemisahan koma. ( Transfer-Encoding: gzip, chunked)
X-Frame-Options: digunakan untuk mencegah situs dari serangan clickjacking. Misalnya, jika Anda menggunakan nilai reject, Anda tidak dapat menyematkan <iframe> ke situs lain. sameorigin memungkinkan embed di Origin yang sama.
Kode Status/Tanggapan:
- 1xx: Artinya permintaan telah diterima oleh server dan perlu melanjutkan proses.
- 2xx: Ini berarti permintaan berhasil.
- 3xx: Berarti pengalihan :)
- 4xx: Ini berarti permintaan berisi permintaan yang buruk, ada yang salah di sisi klien, bukan di server.
- 5xx: Ada masalah dengan server.
- Transfer- Pengkodean : gzip vs. Pengkodean-Konten
- Performa & Perbedaan HEAD vs GET
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
- https://www.freesoft.org/CIE/RFC/2068/143.htm

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































