S10L03 – HTTP рдЕрдиреБрд░реЛрдз

html

JavaScript рдореЗрдВ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛: рдПрдХ рд╡реНрдпрд╛рдкрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

рд╡рд┐рд╖рдп рд╕реВрдЪреА

  1. рдкрд░рд┐рдЪрдп.................................................рдкреГрд╖реНрда 3
  2. HTTP рдХреЙрд▓ рдХреЛ рд╕рдордЭрдирд╛...................................рдкреГрд╖реНрда 5
    • 2.1. HTTP рдХреЙрд▓ рдХреНрдпрд╛ рд╣реИрдВ?
    • 2.2. JSON Placeholder рдХреА рднреВрдорд┐рдХрд╛
    • 2.3. Fetch API рдмрдирд╛рдо XMLHttpRequest
  3. XMLHttpRequest рдХреЗ рд╕рд╛рде HTTP GET рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛.............рдкреГрд╖реНрда 10
    • 3.1. рдЕрдиреБрд░реЛрдз рд╕реЗрдЯ рдХрд░рдирд╛
    • 3.2. Asynchronous рдСрдкрд░реЗрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
    • 3.3. Ready States рдФрд░ HTTP Status Codes рдХрд╛ рдкреНрд░рдмрдВрдзрди
  4. JavaScript рдореЗрдВ Asynchronous рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛............рдкреГрд╖реНрда 18
    • 4.1. JavaScript рдХреА Asynchronous рдкреНрд░рдХреГрддрд┐
    • 4.2. Asynchronous рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди
    • 4.3. рднрд╡рд┐рд╖реНрдп рдХреЗ рд╡рд┐рд╖рдп: Promises, Async/Await
  5. рдирд┐рд╖реНрдХрд░реНрд╖...................................................рдкреГрд╖реНрда 25

рдкрд░рд┐рдЪрдп

рд╕реНрд╡рд╛рдЧрдд рд╣реИ "JavaScript рдореЗрдВ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛", рдЖрдкрдХрд╛ рдЕрдВрддрд┐рдо рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ JavaScript рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HTTP рдХреЙрд▓ рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЪрд╛рд╣реЗ рдЖрдк рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрджрдо рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╢реБрд░реБрдЖрддреА рд╣реЛрдВ рдпрд╛ рдПрдХ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░ рд╣реЛрдВ рдЬреЛ рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЛ рдордЬрдмреВрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВ, рдпрд╣ eBook HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕реНрдкрд╖реНрдЯ, рд╕рдВрдХреНрд╖рд┐рдкреНрдд, рдФрд░ рд╡реНрдпрд╛рдкрдХ рдЦреЛрдЬ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рдореАрдХреНрд╖рд╛

HTTP (HyperText Transfer Protocol) рд╡реЗрдм рдкрд░ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░ рдХрд╛ рдЖрдзрд╛рд░ рд╣реИред HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, APIs рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ, рдФрд░ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ HTTP рдХреЙрд▓ рдХреЗ рдореИрдХреЗрдирд┐рдХреНрд╕ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рддреА рд╣реИ, рдЖрдзреБрдирд┐рдХ рдФрд░ рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рд╕реАрдЦрдиреЗ рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдкреЗрд╢ рдХрд░рддреА рд╣реИред

рдорд╣рддреНрд╡ рдФрд░ рдЙрджреНрджреЗрд╢реНрдп

HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ:

  • рдмрд╛рд╣рд░реА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдЙрд╕реЗManipulate рдХрд░рдирд╛ред
  • рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдФрд░ рдЙрддреНрддрд░рджрд╛рдпреА рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ред
  • рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ APIs рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ред

рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди

рдлрд╛рдпрджреЗ:

  • рдбрд╛рдпрдиреЗрдорд┐рдХ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдФрд░ рдореИрдирд┐рдкреБрд▓реЗрд╢рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред
  • Asynchronous рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред
  • рд╡рд┐рднрд┐рдиреНрди рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред

рдиреБрдХрд╕рд╛рди:

  • Asynchronous рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЬрдЯрд┐рд▓рддрд╛ рд▓рд╛ рд╕рдХрддреА рд╣реИред
  • рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкреНрд░рдмрдВрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
  • рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдУрд╡рд░рд╣реЗрдбред

рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рд╕рд╛рд░рдгреАрдмрджреНрдз рдЕрд╡рд▓реЛрдХрди

рд╡рд┐рд╖рдп рд╡рд┐рд╡рд░рдг рдореБрдЦреНрдп рдмрд┐рдВрджреБ
HTTP Calls HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдореВрд▓ рдмрд╛рддреЗрдВ Methods, status codes
JSON Placeholder HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдХреНрдд рд╕реЗрд╡рд╛ Setup, usage
Fetch API vs. XMLHttpRequest рдЖрдзреБрдирд┐рдХ рдФрд░ рдкрд╛рд░рдВрдкрд░рд┐рдХ HTTP рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ Syntax, capabilities
Asynchronous Programming in JS Async рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ Promises, async/await, callbacks

HTTP рдЕрдиреБрд░реЛрдз рдХрдм рдФрд░ рдХрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

HTTP рдЕрдиреБрд░реЛрдз рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ рдЬрдм:

  • рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ред
  • рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ APIs рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ред
  • рд╕рд┐рдВрдЧрд▓-рдкреЗрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (SPAs) рдмрдирд╛рдирд╛ред
  • CRUD (Create, Read, Update, Delete) рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ред

рд╡рд┐рднрд┐рдиреНрди HTTP рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдФрд░ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдЖрдкрдХреЗ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХрд╛рдлреА рд╣рдж рддрдХ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред


HTTP рдХреЙрд▓ рдХреЛ рд╕рдордЭрдирд╛

2.1 HTTP рдХреЙрд▓ рдХреНрдпрд╛ рд╣реИрдВ?

HTTP рдХреЙрд▓ рд╡реЗ рдЕрдиреБрд░реЛрдз рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ (рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░) рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреИрд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдлреЙрд░реНрдо рдЬрдорд╛ рдХрд░рдирд╛, рдпрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ред рдпреЗ рдХреЙрд▓ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдлреЙрд░реНрдореЗрдЯ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИред

2.2 JSON Placeholder рдХреА рднреВрдорд┐рдХрд╛

JSON Placeholder рдПрдХ рдореБрдлреНрдд рдСрдирд▓рд╛рдЗрди REST API рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдирдХрд▓реА рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рд╕реЗрдЯ рдЕрдк рдХрд┐рдП рдмрд┐рдирд╛ HTTP рдХреЙрд▓реНрд╕ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдПрдВрдбрдкреЙрдЗрдВрдЯ:

  • https://jsonplaceholder.typicode.com/posts тАУ рдкреЛрд╕реНрдЯреЛрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

2.3 Fetch API рдмрдирд╛рдо XMLHttpRequest

рдЖрдзреБрдирд┐рдХ JavaScript рдореБрдЦреНрдпрддрдГ HTTP рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Fetch API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд░рд▓рддрд╛ рдФрд░ promise-рдЖрдзрд╛рд░рд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, XMLHttpRequest (XHR) рдХреЛ рд╕рдордЭрдирд╛ рдЬрд░реВрд░реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрд░рд╛рдиреЗ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдореМрд▓рд┐рдХ рд╣реИред

рд╡рд┐рд╢реЗрд╖рддрд╛ Fetch API XMLHttpRequest
Syntax Style Promise-based Callback-based
Ease of Use Simple and concise More verbose and complex
Streaming Data Supports streaming Limited streaming capabilities
Browser Support Modern browsers Broad browser support, including older ones
Handling Responses Requires parsing to JSON explicitly Can handle various response types easily

XMLHttpRequest рдХреЗ рд╕рд╛рде HTTP GET рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛

рдЬрд╣рд╛рдВ Fetch API рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣рд╛рдВ XMLHttpRequest рдХреЛ рд╕рдордЭрдирд╛ HTTP рдЕрдиреБрд░реЛрдз рдЬреАрд╡рдирдЪрдХреНрд░ рдореЗрдВ рдЧрд╣рд░реА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП XHR рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ GET рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред

3.1 рдЕрдиреБрд░реЛрдз рд╕реЗрдЯ рдХрд░рдирд╛

рдкрд╣рд▓реЗ, XMLHttpRequest рдХрд╛ рдПрдХ рдирдпрд╛ instance рдмрдирд╛рдПрдВ рдФрд░ рдЗрдЪреНрдЫрд┐рдд рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓реЗрдВред

рд╡реНрдпрд╛рдЦреНрдпрд╛:

  • new XMLHttpRequest(): рдПрдХ рдирдпрд╛ XHR рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред
  • open(method, URL, async): рдЕрдиреБрд░реЛрдз рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ true рдПрдХ asynchronous рдЕрдиреБрд░реЛрдз рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

3.2 Asynchronous рдСрдкрд░реЗрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛

JavaScript рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ asynchronous рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, state changes рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП event listeners рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╡реНрдпрд╛рдЦреНрдпрд╛:

  • onreadystatechange: рдЕрдиреБрд░реЛрдз рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЗ рджреМрд░рд╛рди рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ event handlerред
  • readyState === 4: рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХрд╛ рд╣реИред
  • status === 200: рд╕рдлрд▓ HTTP status code рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред
  • JSON.parse(request.responseText): JSON string рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ JavaScript рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред

3.3 Ready States рдФрд░ HTTP Status Codes рдХрд╛ рдкреНрд░рдмрдВрдзрди

readyState рдФрд░ HTTP status codes рдХреЛ рд╕рдордЭрдирд╛ рдкреНрд░рднрд╛рд╡реА HTTP рдЕрдиреБрд░реЛрдз рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

Ready States:

readyState Description
0 UNSENT - Client has been created.
1 OPENED - open() has been called.
2 HEADERS_RECEIVED - send() has been called.
3 LOADING - Downloading response.
4 DONE - The operation is complete.

рд╕рд╛рдорд╛рдиреНрдп HTTP Status Codes:

Status Code Meaning
200 OK - The request was successful.
404 Not Found - The requested resource could not be found.
500 Internal Server Error - A generic error on the server.

JavaScript рдореЗрдВ Asynchronous рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛

Asynchronous рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ JavaScript рдХреЛ рдкрд┐рдЫрд▓реЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдпрд╣ HTTP рдЕрдиреБрд░реЛрдз рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореБрдЦреНрдп рдереНрд░реЗрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддреА рд╣реИред

4.1 JavaScript рдХреА Asynchronous рдкреНрд░рдХреГрддрд┐

JavaScript рдПрдХ event-driven, non-blocking I/O рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╕рд╛рде рдХрдИ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг:

рдЬрдм HTTP рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ JavaScript рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдЕрдиреНрдп рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ, HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдм рднреА callbacks рдпрд╛ promises рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрддрд╛ рд╣реИ, рдЙрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

4.2 Asynchronous рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди

рдлрд╛рдпрджреЗ:

  • Efficiency: Non-blocking рдСрдкрд░реЗрд╢рдВрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдЙрддреНрддрд░рджрд╛рдпреА рдмрдирд╛рддреЗ рд╣реИрдВред
  • Performance: рдПрдХ рд╕рд╛рде рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
  • User Experience: рд▓рдВрдмреА рдСрдкрд░реЗрд╢рдВрд╕ рдХреЗ рджреМрд░рд╛рди UI рдХреЛ рдлреНрд░реАрдЬ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

рдиреБрдХрд╕рд╛рди:

  • Complexity: Asynchronous рдХреЛрдб рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • Debugging: рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • State Management: рд╡рд┐рднрд┐рдиреНрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

4.3 рднрд╡рд┐рд╖реНрдп рдХреЗ рд╡рд┐рд╖рдп: Promises, Async/Await

Asynchronous рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдзреБрдирд┐рдХ JavaScript Promises рдФрд░ async/await рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИред

  • Promises: рдПрдХ asynchronous рдСрдкрд░реЗрд╢рди рдХреЗ рдЕрдВрддрддрдГ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ .then() рдФрд░ .catch() рдореЗрдердбреНрд╕ рдХреА рдЪреЗрдирд┐рдВрдЧ рд╕рдВрднрд╡ рд╣реЛрддреА рд╣реИред
  • Async/Await: Promises рдкрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╢реБрдЧрд░ рдЬреЛ asynchronous рдХреЛрдб рдХреЛ synchronous рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкрдардиреАрдпрддрд╛ рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖

рдЗрд╕ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдореЗрдВ, рд╣рдордиреЗ JavaScript рдореЗрдВ HTTP рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдЖрдзреБрдирд┐рдХ рдФрд░ рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред XMLHttpRequest рдХреЛ рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ JavaScript рдХреА asynchronous рдкреНрд░рдХреГрддрд┐ рдХреЛ рд╕рдордЭрдиреЗ рддрдХ, рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдордЬрдмреВрдд рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдореБрдЦреНрдп рдмрд┐рдВрджреБ

  • HTTP Calls: рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдореМрд▓рд┐рдХ рд╣реИрдВред
  • JSON Placeholder: рд╕рд░реНрд╡рд░ рд╕реЗрдЯ рдЕрдк рдХрд┐рдП рдмрд┐рдирд╛ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореВрд▓реНрдпрд╡рд╛рди рдЙрдкрдХрд░рдгред
  • Fetch API vs. XMLHttpRequest: рджреЛрдиреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди рдорд┐рд▓рддрд╛ рд╣реИред
  • Asynchronous Programming: рдЙрддреНрддрд░рджрд╛рдпреА рдФрд░ рдХреБрд╢рд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЖрдк рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрдкрдирд╛ рдпрд╛рддреНрд░рд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдбрд╛рдпрдиреЗрдорд┐рдХ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЖрдзрд╛рд░рд╢рд┐рд▓рд╛ рд╣реИред JavaScript рдХреА asynchronous рдкреНрд░рдХреГрддрд┐ рдХреЛ рдЕрдкрдирд╛рдПрдВ, Promises рдФрд░ async/await рдЬреИрд╕реЗ рдЖрдзреБрдирд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВ, рдФрд░ рдЕрдкрдиреЗ рдХреМрд╢рд▓ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди APIs рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред

SEO рдЕрдиреБрдХреВрд▓рд┐рдд рдХреАрд╡рд░реНрдб

HTTP requests, JavaScript HTTP calls, XMLHttpRequest tutorial, Fetch API vs. XMLHttpRequest, asynchronous programming in JavaScript, JSON Placeholder guide, making HTTP GET requests, handling async operations, JavaScript web development, HTTP status codes, readyState in XMLHttpRequest, JavaScript promises, async await in JavaScript


рдкрд░рд┐рд╢рд┐рд╖реНрдЯ

рдирдореВрдирд╛ рдХреЛрдб: XMLHttpRequest рдХреЗ рд╕рд╛рде HTTP GET рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛




рд╡реНрдпрд╛рдЦреНрдпрд╛:

  • рдПрдХ рдмрдЯрди HTTP GET рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП <pre> рдЯреИрдЧ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
  • рдХрдВрд╕реЛрд▓ asynchronous рдСрдкрд░реЗрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ waiting рд╕рдВрджреЗрд╢ log рдХрд░рддрд╛ рд╣реИред

рдЖрдЙрдЯрдкреБрдЯ:

“Fetch Posts” рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ “Waiting for response…” рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдкреЛрд╕реНрдЯ <pre> рддрддреНрд╡ рдореЗрдВ рдПрдХ рд╕реНрд╡рд░реВрдкрд┐рдд JSON рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИрдВред


рдЗрд╕ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ рдФрд░ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХреЛрдб рдирдореВрдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк JavaScript рдореЗрдВ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдареЛрд╕ рд╕рдордЭ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЕрдзрд┐рдХ рдбрд╛рдпрдиреЗрдорд┐рдХ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХреЗрдВрдЧреЗред

рдзреНрдпрд╛рди рджреЗрдВ: рдпрд╣ рд▓реЗрдЦ AI рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред






Share your love