Ի՞նչ է HTTP request-ը JavaScript-ում (Ներկառուցված request-ները)
HTTP (HyperText Transfer Protocol) request-ը հանդիսանում է ցանցային հաղորդագրություն, որը կլիենտ (օրինակ՝ բրաուզեր կամ JavaScript runtime) ուղարկում է սերվերին՝ տվյալներ ստանալու կամ ուղարկելու նպատակով։ HTTP request-ները հանդիսանում են վեբի հիմքը, ապահովելով կապ հաճախորդի և սերվերի միջև։
JavaScript-ը, որպես հիմնական լեզու վեբ զարգացման մեջ, ունի ներկառուցված մեխանիզմներ HTTP հարցումներ կատարելու համար, որոնք թույլ են տալիս կոդին անխափան հաղորդակցվել ցանցի հետ՝ իրականացնելով ասինխրոն (asynchronous) կամ սինխրոն (synchronous) հարցումներ։
Ներկառուցված HTTP request-ների հիմնական հատկությունները՝
- Asynchronous Execution: Թույլ է տալիս անել ցանցային հարցումներ առանց UI-ի բլոկավորման՝ ապահովելով հարթ և արագ աշխատանք
- Request Configuration: Լիովին վերահսկում են HTTP մեթոդները (GET, , PUT, DELETE, PATCH), հեդերները, բոդիի ձևաչափը (JSON, FormData, Blob և այլն)
- Response Handling: Ունի բազմաբնույթ մեթոդներ պատասխանները մշակելու համար՝ օրինակ, JSON.parse, Blob, text, arrayBuffer
- Error Handling: Համակարգված են ցանցային, HTTP սխալների և ժամանակի սահմանափակման (timeout) կառավարումը
Այս մեխանիզմները հասանելի են վեբ բրաուզերներում և Node.js միջավայրում (Node.js-ում տարբեր API-ներով)։ Այս շրջանակում հիմնականում կներկայացնենք բրաուզերի մեջ օգտագործվող native մեթոդները՝ XMLHttpRequest և Fetch API։
Կարճ պատմական ակնարկ՝
XMLHttpRequest(XHR) API-ն ստեղծվել է 2000-ականներին Ajax-ի՝ asynchronous JavaScript և XML տեխնոլոգիայի համար։ Այն թույլ տվեց ծրագրավորողներին կատարել ցանցային հարցումներ առանց էջի վերաբեռնումների, ինչը հեղափոխեց վեբի հետադարձ փոխազդեցությունը։Fetch APIներկայացվել է ավելի նոր, Promise-հիմնված ժամանակակից մեթոդ, որը ավելի պարզ և մաքուր API է ապահովում, աշխատում է ավելի լավ async/await կոնտեքստում, և տրամադրում է ավելի հարմար ձևերով կառավարել request-ները ու response-ները։
Հետևաբար, JavaScript-ում HTTP հարցումները ներառված են որպես հզոր, դինամիկ ցանցային միջերեսներ, որոնք անհրաժեշտ են ցանկացած web հավելվածի հարթ և ժամանակակից աշխատանքի համար։
Հաջորդը՝ ավելի մանրամասն կանդրադառնանք XMLHttpRequest-ին՝ հասկանալու, թե ինչպես է այն աշխատում ներքևի մակարդակում, ինչ սահմանափակումներ ունի, և ինչպես կարելի է օգտագործել։