Sobes.tech
Junior

HTTP версиялары жана алардын айырмачылыктары жөнүндө айтыңыз.

sobes.tech AI

AIден жооп

HTTP негизги версиялары:

  • HTTP/0.9: Жөнөкөй HTML документтерин өткөрүү үчүн негизги версия. only GET ыкмасын колдонуучу, башталыштар жана жооп статусу жок.
  • HTTP/1.0: Башталыштарды (Content-Type, User-Agent), POST жана HEAD ыкмаларын жана жооп статусун колдоо киргизилди. Байланыш ар бир суроо/жооптон кийин жабылчу.
  • HTTP/1.1: маанилүү жакшыртуулар:
    • Туруктуу байланыштар (Persistent Connections) - TCP байланышын кайра колдонуу үчүн.
    • Пайпелинги - бир нече суроону жооп күтпөстөн жөнөтүү (жаман ишке ашырылган жана сейрек колдонулат).
    • Виртуалдуу хосттор (Host башталышы).
    • бөлүктүү GET суроолору (Range башталышы).
    • Кэширлөө (Cache-Control, ETag, Last-Modified).
    • PUT жана DELETE ыкмалары.
  • HTTP/2: Google-дин SPDY протоколу негизинде. негизги айырмачылыктар:
    • Бинардык протокол - натыйжалуу талдоо.
    • Мултиплексинг - бир TCP байланышы аркылуу бир нече суроо/жоопту параллел өткөрүү. HTTP/1.1 pipeliningдеги "head-of-line blocking" маселесин жоюу.
    • Башталыштарды кысуу (HPACK) - өткөрүлүүчү маалыматтын өлчөмүн азайтуу.
    • Приоритеттөө (Server Push) - сервер, мүмкүн болуучу керектүү ресурстарды, суралбай туруп жөнөтө алат.
  • HTTP/3: UDP протоколу (QUIC - Quick UDP Internet Connections колдонуу) негизинде, TCPнин ордуна. иштөө ылдамдыгын жакшыртуу үчүн, өзгөчө туруксуз желилерде:
    • 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
// ...бир байланышка параллел өтөт