4 Mayıs 2020 Pazartesi

Http İstek (Request) Parametreleri - Request Header Fields

Giriş
Liste şöyle. Bu parametreler sadece istek ile kullanılır.

Accept - HTTP Header parametresi
İstemci ne tür dosyaları işleyebileceğini sunucuya bildirir. Sunucu elinde bu türden kaynak varsa gönderir. Sunucu veriyi gönderirken Content-Type alanını doldurur.
Accept: image/jpeg,image/tiff
Accept-Charset Parametresi
Örnek ver

Accept-Encoding Parametresi - Sıkıştırma İçindir
Açıklaması şöyle. Yani istemci sunucuya göndereceği cevabı sıkıştırmak isterse hangi algoritmaları kullanabileceğini belirtir.
Accept-Encoding — A list of compression algorithms used by clients to advertise what algorithms it supports.
Content-Encoding — A list of compression algorithms used by the server in the order in which it was applied on the body.
İstemcinin gönderdiği "accept-encoding" parametresi, sunucu tarafından "content-encoding" ile cevaplanır. gzip, br, deflate gibi değerler kullanılabilir.

Örnek
Şöyle yaparız
Accept-encoding: gzip
İstemcinin gönderdiği şey cevapta Content-Encoding olarak gelir.
Content-Encoding: gzip
Örnek
Şöyle yaparız.
Accept-Encoding: gzip, deflate
Buraya kadar normal çalışma. Bir de isteğin de sıkıştırılıp gönderilmesi var. Yani istemci şöyle gönderiyor. Bu durumda çoğu sunucu HTTP 400 Bad Request ile cevap veriyor. Yani sunucular sıkıştırılmış istek istemeye göre ayarlı değiller.
Accept-encoding: gzip
Content-Encoding: gzip

Accept-Language Parametresi
Şöyledir
Accept-Language: en-US;
İstemci hangi dilde cevap tercih ettiğini belirtir. VPN kullanılsa bile yani ABD'deki bir tarayıcı Almanya üzerinden istek gönderse bile sunucu isteğin İngilizce olması gerektiğini anlayabilir. Burada önemli olan IP değil sunucunun cevap verebilmesi. ABD'deki bir sunucuya ur-PK (Urdu dili) ile istek göndermek anlamsız olabilir.

Authorization Parametresi
Http Authorization İstek Parametresi yazısına taşıdım

Cache-Control Parametresi
Cache-Control parametresi hem request hem de response ile kullanılabilir. Request ile kullanırken şu değerleri alabilir 
Cache-Control: max-age=<seconds>
Cache-Control: max-stale[=<seconds>]
Cache-Control: min-fresh=<seconds>
Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: no-transform
Cache-Control: only-if-cached
Connection Parametresi
Örnek - WebSocket
İstemcinin Connection isteği şöyledir
GET /socket HTTP/1.1
Host: thirdparty.com
Origin: http://example.com
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Extensions: permessage-deflate
Sunucunun cevabı Connection isteği şöyledir
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Access-Control-Allow-Origin: http://example.com Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Extensions: permessage-deflate
Expect Parametresi 
Örnek ver

From Parametresi 
Örnek ver

Host Parametresi
Açıklaması şöyle. Aynı bilgisayarda birden fazla sanal alan (domain) varsa hangisini istediğimizi belirtmek için kullanılır.
HTTP host header in the HTTP request which is used to select the matching virtual host configuration 
Açıklaması şöyle.
It's very common to host multiple web sites on the same IP address and distinguish between them based on the HTTP Host header specified by the client (as well as the TLS SNI value nowadays in the case of HTTPS).
Örnek
Http 1.1 ile tarayıcı isteği şöyle gönderir.
GET /path HTTP/1.1
Host: example.com
Örnek - Alan İsmi Yerine Ip Adresi Kullanılamaz
Açıklaması şöyle.
Many servers decide not to give out pages when the host is specified by IP address.
Alan ismi yerine IP Adresi kullanan bu örnek te hatalı
GET /whatever HTTP/1.1
Host: a.b.c.d
If-Match Parametresi
Örnek ver

If-Modified-Since Parametresi
Örnek ver

If-None-Match Parametresi
Örnek ver

If-Range Parametresi
Örnek ver

If-Unmodified-Since Parametresi
Örnek ver

Max-Forwards Parametresi
Örnek ver

Proxy-Authorization Parametresi
Örnek ver

Range Parametresi
Örnek ver

Referer Parametresi
Linkin kimden kaynaklandığını gösterir. Açıklaması şöyle.
If you have any external links or resources on the site (images, Javascript), the client browser will set the Referer with your domain, so any site you link will know the existence of your domain.
Örnek
Şöyle görürüz.
"Referer: https://www.google.com/"
TE Parametresi
Örnek ver

User-Agent Parametresi
Android cihazlarda şöyledir. Cihazın modeli de gönderilir.
Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla/5.0 (Linux; U; Android 4.0.3; de-ch; HTC Sensation Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
IPhone'larda şöyledir.
Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25

Hiç yorum yok:

Yorum Gönder