Sobes.tech
Junior

дар бораи версияҳои HTTP ва фарқиятҳои онҳо гап занед.

sobes.tech AI

Ҷавоб аз AI

Асосӣ нусхаҳои HTTP:

  • HTTP/0.9: Нусхаи асосӣ барои интиқоли ҳуҷҷатҳои HTML оддӣ. Танҳо методи GET дастгирӣ мешуд, сарлавҳаҳо ва статусҳои ҷавоб набуд.
  • HTTP/1.0: Дастгирии сарлавҳаҳо (Content-Type, User-Agent), методҳои POST ва HEAD, ва статусҳои ҷавоб ворид шуд. Воридшавии пайвастагӣ пас аз ҳар дархост/ҷавоб баста мешуд.
  • HTTP/1.1: Беҳбудиҳои муҳим:
    • Пайвастагиҳои доимӣ (Persistent Connections) - такрор истифода бурдани пайвастагии TCP барои чанд дархост.
    • Пайплайнг - фиристодани чанд дархост бе интизори ҷавоб (гарчанде ки бад иҷро шудааст ва кам истифода мешавад).
    • Ворид кардани серверҳои виртуалӣ (Host header).
    • Дархостҳои қисмӣ (Range header).
    • Кешгирӣ (Cache-Control, ETag, Last-Modified).
    • Методи PUT ва DELETE.
  • HTTP/2: Бар асоси SPDY-и Google. Тафовутҳои асосӣ:
    • Протоколи бинарӣ - таҳлили муассиртар.
    • Мултиплексинг - интиқоли ҳамзамон дархостҳо/ҷавобҳо дар як пайвастагии TCP. Масъалаи "head-of-line blocking" дар HTTP/1.1-ро бартараф мекунад.
    • Тӯлроғии сарлавҳаҳо (HPACK) - кам кардани андозаи маълумотҳои интиқолёфта.
    • Приоритетгузорӣ (Server Push) - сервер метавонад захираҳоро фиристад, ки эҳтимолан ба мизоҷ ниёз доранд, пеш аз он ки онҳо дархост кунанд.
  • HTTP/3: Бар асоси протоколи UDP (бо истифода аз QUIC - Quick UDP Internet Connections) ба ҷои TCP. Ба беҳбуди иҷроиш нигаронида шудааст, махсусан дар шабакаҳои номувофиқ:
    • Бартараф кардани "head-of-line blocking" дар сатҳи пайвастагӣ. Агар як баста дар TCP гум шавад, ҳамаи бастаҳои баъдӣ то расонидани дубора блок мешаванд. Дар QUIC (ва HTTP/3) танҳо ҷараён, ки ба баста тааллуқ дорад, блок мешавад.
    • Қуръати зудтар барои барқарор кардани пайвастагӣ (0-RTT ё 1-RTT).
    • QUIC механизмҳои назорати ҷараён ва эътимоднокиро дар бар мегирад.

Тафовутҳои асосӣ дар ҷадвал:

Хусусият HTTP/1.0 HTTP/1.1 HTTP/2 HTTP/3
Протокол TCP TCP TCP UDP (QUIC)
Формат Матнӣ Матнӣ Бинарӣ Бинарӣ
Воридшавии асосӣ кӯтоҳмуддатӣ доимӣ доимӣ (мултиплексинг) доимӣ (стримҳои QUIC)
Мултиплексинг Не Тасвир (Pipelining) Бале Бале
Тӯлроғии сарлавҳаҳо Не Не HPACK QPACK (дар QUIC)
Server Push Не Не Бале Бале
Блокиратсияи HOL (TCP) Бале (дар сатҳи дархост) Бале (дар сатҳи дархост) Бале (дар сатҳи пайвастагӣ) Не (дар сатҳи ҷараён)

Маслиҳат барои дархост дар HTTP/1.1:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: curl/7.64.1
Accept: */*

Маслиҳат барои дархост дар HTTP/2 (концептуалӣ, дар формати бинарӣ):

// Дархост 1: гирифтани /index.html
// :method = GET
// :path = /index.html
// :authority = www.example.com

// Дархост 2: гирифтани /style.css
// :method = GET
// :path = /style.css
// :authority = www.example.com
// ...дар як пайвастагӣ параллелӣ