𝗥𝗙𝗖 𝟭𝟬𝟬𝟬𝟴: പുതിയ HTTP QUERY രീതി
സങ്കീർണ്ണമായ ഡാറ്റ ശേഖരിക്കുമ്പോൾ (fetching) ഡെവലപ്പർമാർ ഒരു പ്രശ്നം നേരിടുന്നുണ്ട്. നിങ്ങൾക്ക് GET ഉപയോഗിക്കണം എന്ന് തോന്നും, പക്ഷേ അതിന് പരിധികളുണ്ട്. POST ഉപയോഗിക്കണം എന്ന് തോന്നും, പക്ഷേ അത് ഈ ആവശ്യത്തിന് അനുയോജ്യമായ ഒരു ഉപകരണം അല്ല. RFC 10008 ഒരു പുതിയ പരിഹാരം നിർദ്ദേശിക്കുന്നു: QUERY രീതി.
GET ഉപയോഗിക്കുമ്പോൾ നിലവിൽ നേരിടുന്ന ബുദ്ധിമുട്ടുകൾ:
- URL പരിധികൾ: ബ്രൗസറുകളും സെർവറുകളും URL ദൈർഘ്യം പരിമിതപ്പെടുത്തുന്നു. വലിയ ഫിൽട്ടറുകൾ നിങ്ങളുടെ റിക്വസ്റ്റുകളെ തടസ്സപ്പെടുത്തുന്നു.
- ക്രമരഹിതമായ ഘടന: GET ലളിതമായ key-value ജോഡികളാണ് ഉപയോഗിക്കുന്നത്. നെസ്റ്റഡ് (nested) JSON ഒബ്ജക്റ്റുകൾ അയക്കുന്നത് പ്രയാസകരമാണ്.
- സ്വകാര്യതാ ഭീഷണി: ക്വറി പാരാമീറ്ററുകൾ (Query parameters) സെർവർ ലോഗുകളിലും ബ്രൗസർ ഹിസ്റ്ററിയിലും കാണപ്പെടും.
POST ഉപയോഗിക്കുമ്പോൾ നിലവിൽ നേരിടുന്ന ബുദ്ധിമുട്ടുകൾ:
- തെറ്റായ സെമാന്റിക്സ് (semantics): ഡാറ്റ നിർമ്മിക്കാനോ മാറ്റം വരുത്താനോ ആണ് നിങ്ങൾ ആഗ്രഹിക്കുന്നത് എന്ന് POST സെർവറിനെ അറിയിക്കുന്നു.
- കാഷിംഗ് (Caching) പ്രശ്നങ്ങൾ: മിക്ക സിസ്റ്റങ്ങളും POST റിക്വസ്റ്റുകൾ കാഷ് (cache) ചെയ്യാറില്ല. ഇത് നിങ്ങളുടെ ആപ്ലിക്കേഷന്റെ വേഗത കുറയ്ക്കുന്നു.
QUERY രീതി ഇത് മാറ്റുന്നു. ഡാറ്റ ശേഖരിക്കുന്നതിനായി ഒരു റിക്വസ്റ്റ് ബോഡി (request body) അയക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു. ഇത് നിങ്ങളുടെ API വൃത്തിയായി സൂക്ഷിക്കാനും ശരിയായ നിയമങ്ങൾ പാലിക്കാനും സഹായിക്കുന്നു.
QUERY രീതിയുടെ ഗുണങ്ങൾ:
- സങ്കീർണ്ണമായ ബോഡികൾ ഉപയോഗിക്കാം: സെർച്ച് ഫിൽട്ടറുകൾക്കായി നിങ്ങൾക്ക് പൂർണ്ണമായ JSON ഒബ്ജക്റ്റുകൾ അയക്കാം.
- സുരക്ഷിതമായിരിക്കാം: ഇത് സെർവർ സ്റ്റേറ്റ് (server state) മാറ്റുന്നില്ല.
- വേഗത വർദ്ധിപ്പിക്കാം: GET രീതിയെപ്പോലെ കാര്യക്ഷമമായ കാഷിംഗ് (caching) ഇതിലൂടെ സാധ്യമാകും.
GET ചെയ്യേണ്ട കാര്യങ്ങൾക്കായി POST ഉപയോഗിക്കുന്നത് നിർത്തുക. HTTP മാനദണ്ഡങ്ങൾ ലംഘിക്കാതെ തന്നെ സമൃദ്ധമായ ഡാറ്റ ശേഖരിക്കാൻ QUERY രീതി ഒരു വഴി നൽകുന്നു.
ഉറവിടം: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-rfc-10008-the-new-http-query-method-25fo