HTTP (Π°Π½Π³Π». HyperText Transfer Protocol) β€” ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ гипСртСкста, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создан для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ изобраТСния, JSON, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

HTTP-сообщСния состоят ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов:

  • Бтартовая строка β€” опрСдСляСт Ρ‚ΠΈΠΏ сообщСния:
    • Для запросов Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GET) ΠΈ URL.
    • Для ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ΄ состояния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 200 OK).
  • HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ β€” строки Π²ΠΈΠ΄Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ сообщСниС:
    • НапримСр, Content-Type: application/json опрСдСляСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‚Π΅Π»Π° сообщСния.
  • ΠŸΡƒΡΡ‚Π°Ρ строка β€” раздСляСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ Ρ‚Π΅Π»ΠΎ сообщСния.
  • Π’Π΅Π»ΠΎ сообщСния β€” содСрТит Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром. НапримСр, Π² запросС POST Ρ‚Π΅Π»ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ JSON с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ для сСрвСра.

ΠŸΡ€ΠΎΡΡ‚Π°Ρ структура HTTP-запроса:

GET /api/resource HTTP/1.1
Host: example.com
Authorization: Bearer my-token

ΠžΡ‚Π²Π΅Ρ‚ сСрвСра:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 123
 
{
  "message": "Success",
  "data": []
}

ВСрсии HTTP

  • 1.1:
    • Π¨ΠΈΡ€ΠΎΠΊΠΎ распространСн.
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° постоянных соСдинСний (keep-alive)
  • 2:
    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (вмСсто тСкстового).
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (одноврСмСнная ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… запросов Π² ΠΎΠ΄Π½ΠΎΠΌ соСдинСнии).
  • 3:
    • Основан Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ QUIC (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ… UDP).
    • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ соСдинСний.

Http ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ HTTP ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π° сСрвСрС:

  • GET: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с сСрвСра.
  • HEAD: Запрос Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² рСсурса, Π±Π΅Π· Ρ‚Π΅Π»Π°.
  • POST: ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСр для создания рСсурса.
  • PUT: ОбновлСниС ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ рСсурса.
  • DELETE: Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ рСсурса.
  • OPTIONS: Запрос ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… сСрвСром ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ….

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PATCH (частичноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅) ΠΈ TRACE (трассировка ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° сообщСния).

HTTP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² HTTP ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ сообщСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²:

Content-Type: application/json
Authorization: Bearer token
Cache-Control: no-cache

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основныС Π³Ρ€ΡƒΠΏΠΏΡ‹:

  • General Headers β€” ΠΎΠ±Ρ‰ΠΈΠ΅ для запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²:
    • Cache-Control: ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
    • Date: врСмя ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния.
  • Request Headers β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² запросах:
    • Accept: ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π°.
    • Authorization: ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Ρ‚ΠΎΠΊΠ΅Π½Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.
  • Response Headers β€” Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ для ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² сСрвСра:
    • Server: информация ΠΎ сСрвСрС.
    • Set-Cookie: установка cookies.
  • Entity Headers β€” ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‚ Ρ‚Π΅Π»ΠΎ сообщСния:
    • Content-Type: Ρ‚ΠΈΠΏ содСрТимого.
    • Content-Length: Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π° Π² Π±Π°ΠΉΡ‚Π°Ρ….

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ X- Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ нСстандартный.


ΠœΠ΅Ρ‚Π° информация

ΠžΠ±Π»Π°ΡΡ‚ΡŒ:: 00 Π‘Π΅Ρ‚ΠΈ
Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ::
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ::
Π‘ΠΎΠ·Π΄Π°Π½Π°:: 2024-11-03
Автор::

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ