Sorğunun bədəni (body), başlıqlar (headers) və sorğu parametrləri (query parameters) niyə mövcuddur və niyə onları birləşdirmək mümkün deyil?
sobes.tech Süni İntellekt
AI-dan cavab
Sorğu (body), başlıqlar (headers) və sorğu parametrləri (query parameters) HTTP sorğusunda müxtəlif növ məlumatların ayrılması üçün mövcuddur və onları birləşdirmək mümkün deyil, çünki onlar müxtəlif funksiyaları yerinə yetirir və müxtəlif məqsədlərə xidmət edir.
Sorğu Parametrləri (Query Parameters)
?işarəsindən sonra URL-də göndərilir.- Məlumatların filtrlənməsi, sıralanması, səhifələnməsi və ya əməliyyat üçün lazım olan kiçik həcmdə qeyri-gizli məlumatların ötürülməsi üçün istifadə olunur.
- Tez-tez GET sorğuları ilə istifadə olunur, çünki onların body-si yoxdur.
- URL-də görünürlər, ona görə də gizli məlumatların ötürülməsi üçün uyğun deyil.
- URL uzunluğu ilə məhdudlaşdırılıb.
Nümunə:
GET /users?pageSize=10&page=2&sort=name
Başlıqlar (Headers)
- Sorğu və cavab haqqında meta-məlumatları ötürür.
- Məzmun tipi, kodlama, autentifikasiya tokenləri, müştəri haqqında məlumatlar (User-Agent), keşik və s. kimi məlumatları ehtiva edir.
- Sorğu/cavab davranışını idarə etmək üçün istifadə olunur, əməliyyat məlumatlarını ötürmək üçün deyil.
Başlıq nümunələri:
Content-Type: application/json
Authorization: Bearer <token>
User-Agent: Mozilla/5.0 (...)
Sorğu Body-si (Body)
- Serverə işləmə üçün göndərilən əsas məlumatları ehtiva edir.
- Serverdə vəziyyəti dəyişdirən (POST, PUT, PATCH) və ya böyük həcmdə məlumat göndərən sorğularla istifadə olunur.
- Tipik formatlar: JSON, XML, formalar (urlencoded/multipart).
- Ölçü baxımından məhdudiyyət yoxdur (praktik sərhədlər daxilində).
- URL-də görünmür.
Sorğu body nümunəsi (POST sorğusu üçün):
{
"name": "John Doe",
"email": "john.doe@example.com"
}
Niyə birləşdirilə bilməz:
- Semantika: Hər bir hissə öz semantik yükünü daşıyır. Parametrlər nə soruşulacağını (filtrlər), başlıqlar nə soruşulacağını (metama'lumotlar), və body isə məlumatlar göndərir.
- HTTP protokolu: HTTP strukturu bu komponentləri aydın şəkildə ayırır, bu da müştəri və server tətbiqlərinin onları düzgün təhlil etməsinə və işləməsinə imkan verir.
- Performans və keşik: Ayırma HTTP infrastrukturunun (proxy, keşik və s.) eyni URL parametrləri ilə GET cavablarını effektiv şəkildə keşik altına almağa imkan verir, məsələn, cavabların keşiklenməsi.
- Təhlükəsizlik: Gizli məlumatların URL-də (parametrlərdə) ötürülməsi təhlükəsiz deyil, çünki onlar loglara və ya brauzer tarixçəsinə qeyd oluna bilər. Bunun üçün body istifadə olunur.
- Məhdudiyyətlər: Sorğu parametrlərinin URL uzunluğu ilə məhdudiyyəti var, bu da böyük həcmdə məlumatların ötürülməsi üçün uyğun deyil. Body isə bu məhdudiyyətə məruz qalmır.
Bu elementlərin birləşdirilməsi strukturun itirilməsinə, HTTP sorğularının analiz və işlənməsinin çətinləşməsinə və təhlükəsizlik və effektivliyin pozulmasına səbəb olar.