HTTP Header Başlıkları

Mutkus Blog

HTTP başlıkları, istemcide ki bir uygulamanın sunucu ile haberleşmesi sırasında ek bilgiler sağlar. İstemci ve sunucu arasında bu başlıklar sayesinde, isteklerin nasıl işleneceği belirlenir ve bu iletişim OSI’nin 3. katmanından 7. katmanına kadar gerçekleşir.

Content-Type

OSI’nin 7. katmanında, veri formatının tanımlanmasının gerçekleştiği bu başlıkta gönderilen içeriğin türü belirlenir.

İçerik Türleri;

Veri TipiDeğeri
Uygulamaapplication/EDI-X12
application/EDIFACT
application/javascript
application/octet-stream
application/ogg
application/pdf
application/xhtml+xml
application/x-shockwave-flash
application/json
application/ld+json
application/xml
application/zip
application/x-www-form-urlencoded
Sesaudio/mpeg
audio/x-ms-wma
audio/vnd.rn-realaudio
audio/x-wav
Resimimage/gif
image/jpeg
image/png
image/tiff
image/vnd.microsoft.icon
image/x-icon
image/vnd.djvu
image/svg+xml
Multipartmultipart/mixed
multipart/alternative
multipart/related (using by MHTML (HTML mail).)
multipart/form-data
Texttext/css
text/csv
text/html
text/javascript (obsolete)
text/plain
text/xml
Videovideo/mpeg
video/mp4
video/quicktime
video/x-ms-wmv
video/x-msvideo
video/x-flv
video/webm
VNDapplication/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.presentation
application/vnd.oasis.opendocument.graphics
application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.ms-powerpoint
application/vnd.openxmlformats-officedocument.presentationml.presentation
application/msword
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.mozilla.xul+xml

Örnek bir bash çıktısı:

curl -X POST https://example.com/api \
-H "Content-Type: application/json" \
-d '{"key": "value"}'

Authorization

Bu başlıkta arada ki güvenli oturumun gerçekleşmesi için kimlik doğrulaması gerçekleşir. Uygulama içerisinde gerçekleştiği için OSI’nin 7. katmanında bulunur. Bazı authorization başlıkları aşağıda ki gibidir;

  • Basic Auth
  • Bearer Token
  • API Key
  • Digest Auth
  • OAuth 2.0
  • Hawk Authentication
  • AWS Signature
curl -X GET https://example.com/secure-data \
-H "Authorization: Bearer your_token_here"

Accept

Bu katmanda istemcinin kabul ettiği veri türlerinin belirlendiği kısımdır. Yine uygulama katmanında gerçekleştiği için OSI’nin 7. katmanında gerçekleşiyor.

curl -X GET https://example.com/api \
-H "Accept: application/json"

User-Agent

İsteği gönderen istemcinin tanımlandığı kısımdı. Uygulama kısmında olduğu için OSI’nin 7. katmanında gerçekleşir.

User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>

Cache-Control

Önbellekleme olayının kontrol edildiği kısımdır. OSI’nin 7. katmanında gerçekleşir.

Cache-Control: max-age=604800

    Daha fazla bilgi için: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control

    Host

    Hedef sunucunun alan adını ve portunun belirlendiği kısımdır. OSI 7. katmanda bulunur.

    "Host: example.com"

    Origin

    Verinin, geldiği kaynağı belirtir. OSI’nin 7. katmanında gerçekleşir.

    "Origin: https://example.com"

    Referer

    İsteğin yapıldığı sayfa bilgisinin olduğu kısımdır. OSI’nin 7. katmanında bulunur.

    "Referer: https://mywebsite.com/page"

    Accept-Encoding

    İstemcinin desteklediği veri sıkıştırma türünün belirlendiği kısımdır. OSI’nin 6. katmanında bulunur.

    Accept-Encoding: gzip
    Accept-Encoding: compress
    Accept-Encoding: deflate
    Accept-Encoding: br
    Accept-Encoding: zstd
    Accept-Encoding: identity
    Accept-Encoding: *
    
    // Multiple algorithms, weighted with the quality value syntax:
    Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5

    İstemciden sunucuya çerezlerin taşındığı kısımdır. OSI’nin 7. katmanında gerçekleşir.

    "Cookie: session_id=abc123"

    Set-Cookie

    Sunucudan, istemcide kullanılacak çerezlerin ayarlanması için kullanılır. OSI’nin 7. katmanında gerçekleşir.

    curl -X GET https://example.com/resource \
    -H "Set-Cookie: session_id=abc123; Path=/; Secure; HttpOnly"

    X-Requested-With

    Web uygulaması ile istemci arasında, istekler normal ve yenileme olarak iki kısımdan oluşur. İstemci tarafından uygulama tarafına normal bir GET isteği giderse, uygulama sunucusu bu isteğin normal bir istek olduğunu algılarken, AJAX isteği giderse sayfanın tamamının veya bir kısmının yenileme isteği olduğunu anlar. Ayrıca sunucu tarafında, X-Requested-With başlığı kontrol edilerek bu isteğin bir bot tarafından mı yoksa normal bir kullanıcıdan geldiği de anlaşılır. Bu istek doğal olarak OSI’nin 7. katmanında gerçekleşir.

    curl -X GET https://example.com/api \
    -H "X-Requested-With: XMLHttpRequest"

    Connection

    İstemci ve sunucu arasında gerçekleştirilen bağlantının açık mı kapalı mı kalacağının belirlendiği kısımdır. Burada iki seçenek vardır. Bunlar “keep-alive” ve “close” şeklindedir. OSI’nin 4. katmanında TCP ile gerçekleşen bir durumdur.

    curl -X GET https://example.com/resource \
    -H "Connection: keep-alive"

    X-Forwarded-For

    Bu başlık, istemci ile sunucu arasında bir proxy veya lord balancer gibi katmanlar varsa, sunucu tarafında istemcinin IP adresinin bilinmesi için doldurulan kısımdır. Bazı kaynaklarda XFF olarakta geçer ve OSI’nin 3. katmanında gerçekleşir.

    X-Forwarded-For: <client>, <proxy>
    X-Forwarded-For: <client>, <proxy>, …, <proxyN>

    Bir Cevap Yazın

    This site uses Akismet to reduce spam. Learn how your comment data is processed.