Халуун HTTPS ба халуун VPN: ижил хүсэлтийн замыг харьцуул
HTTPS API хүсэлт бүрт гар барилт хийдэггүй тул халуун холболт ба халуун туннель өрсөлдөгч биш. Сонгохын өмнө ижил хүсэлтийн загварыг харьцуул.
Та HTTPS API хүсэлт бүрт шинэ TCP холболт ба шинэ TLS гар барилт нээдэг, тиймээс нэг цаг нээлттэй байх туннель хямд харагддаг гэж уншсан байх. Үүний эхний хагас нь ихэвчлэн худал. Дэмжигдсэн клиент олон солилцоонд тогтоосон холболтыг дахин ашигладаг бөгөөд дуудлага бүрт шинэ клиент барьдаг хэмжилт нь хамгаалалтыг биш, амьдралын мөчлөгийг хэмждэг. Энэ хуудасны үлдсэн хэсэг нь оронд нь юу хэмжих талаар өгүүлнэ.
Дахин ашиглах нь үнэхээр юу шаарддаг
Тогтвортой байдал нь HTTP загварын хэсэг бөгөөд заль биш: нэг холболт хэд хэдэн хүсэлт, хариултын солилцоог зөөдөг. Холболт нь аль нэг тал үүнийг хаах үед, сервер идэвхгүй эсвэл хэт ачаалалтай холболтыг татах үед, эсвэл толгой хэсэг эсвэл протоколын дүрэм холболтыг дахин ашиглах боломжгүй гэж хэлэх үед дуусдаг. HTTPS энэ яриаг солилцоо бүрт шинэ гар барилт шаардалгүйгээр TLS дотор байрлуулдаг. Тиймээс хоёр дахь хүсэлт нь завсарт ямар нэг зүйл холболтыг дуусгаагүй бол эхний хүсэлтийн гар барилтыг давтахгүй.
Дахин ашиглах нь програмууд амархан зөрчих нэг нөхцөлтэй. Холболтыг дахин ашиглахаар төлөвлөж буй клиент хариултын бүх биеийг унших ёстой бөгөөд хагас замд орхигдсон хариулт нь холболтын сан хэнд ч мэдэгдэхгүйгээр алга болох ердийн арга юм.
Сангийн дэмждэг клиент болон холболтын сангийн амьдралын мөчлөгийг шалга, сан асаалттай эсвэл унтарсан гэж таамаглахгүй. Тохиролцсон HTTP хувилбарыг ч тэмдэглэ, учир нь HTTP/2 ба HTTP/3 холболтыг дахин ашиглахыг HTTP/1.1-ээс өөрөөр зохицуулдаг. Тохиролцсон хувилбарыг хэмжилтийн хэсэг гэж үз, доод тэмдэглэл гэж биш.
Яагаад харьцуулалт амьдралын мөчлөгийг хэмждэг
Үйлдэл бүрт шинэ клиент бүтээж, нэг цагийн турш холбогдсон туннельтай харьцуулах нь холболт тогтоохыг тогтвортой төлөвтэй харьцуулдаг. Энэ нь хууль ёсны хэмжилт бөгөөд HTTPS-ийн VPN-ийн эсрэг харьцуулалт биш. Ижил клиент тохиргоотой хоёр гүйлт нь нэгээс илүү зан төлөвийг дүрсэлдэг, ялангуяа эхний гүйлт шийдэгч эсвэл холболтын кэшийг халаах үед.
API үйлдэл, сервер, бүртгэл болон өгөгдлийг тогтмол байлга, эс бөгөөс харьцуулалт нэгээс олон хувьсагч зөөнө. Таймерийг хаана байрлуулахаа урьдчилан шийд, учир нь тогтоох, TLS хэлэлцээр, програмын гүйцэтгэл болон хариулт хүргэх нь нийт дүнд өөр өөрөөр нэмэрлэдэг. Эхний хүсэлтийн нэг таймер нь тогтоохыг тодорхойлдог бөгөөд таны бодитоор жолоодож буй тогтвортой урсгалын талаар юу ч хэлэхгүй. Таймерын хязгаарыг тоонуудын хажууд бич.
Хүйтэн тогтоолтыг халуун хүсэлтээс тусгаарла
Эхний хүсэлтийг дараагийнхаас тусдаа хэмж. Дараа нь үйлчилгээний бодитоор харж буй зүйлийг нэм: идэвхгүй үе, тэсрэлт, зэрэгцээ байдал, хариултын хэмжээ болон дахин холболтууд.
Гэрчилгээний баталгаажуулалт ба HTTPS-ийг хоёр замд асаалттай үлдээ, учир нь тэдгээрийг хасах нь илүү хурдан биш, өөр аюулгүй байдлын загварыг хэмждэг. Хэрэв туннель зам эсвэл гарцын байршлыг өөрчилбөл, цаг хугацааны өөрчлөлт бүрийг шифрлэлтэд хамааруулахын оронд тэр ялгааг тусад нь мэдээл, учир нь зам, алдагдал болон дараалал жижиг хүсэлтэд давамгайлж болно. Дүгнэлт хийхийн өмнө зам бүрийг ижил маршрутаар хоёр удаа ажиллуул. Тохиролцсон протокол болон таймерын хязгаарыг хоёр гүйлттэй хамт бич.
Хаагдах холболтод бэлтгэ
Тогтвортой гэдэг нь мөнх гэсэн үг биш. Сервер, прокси эсвэл сүлжээний өөрчлөлт идэвхгүй үед холболтыг хааж болох бөгөөд клиент сангийнхаа дэмждэг зан төлөвөөр сэргэх ёстой. Тэр сэргэлт нь төлөвийн машинтай: хүсэлт сервер дээр дууссан байж болно, эсвэл сервер уншихаас өмнө бүтэлгүйтсэн байж болно, хаагдсан сокет дуудагчид аль нь болсныг хэлэхгүй. Энэ байрлалд идемпотент бус үйлдлийг зүгээр л дахин тоглуулж болохгүй, учир нь давталт үл мэдэгдэх үр дүнг давхар бичилт болгоно. Энд халуун туннель ба халуун холболт ижил авирладаг, учир нь хоёулаа ажил явж байх мөчид бүтэлгүйтэж болно.
Сокетыг дахин нээдэг давталтын оронд үйлчилгээний баримтжуулсан дахин оролдлого эсвэл идемпотент байдлын механизмыг ашигла. Сэргэлтийг тодорхой шалга: идэвхгүй холболтыг хааж, клиент дараа нь юу хийдгийг ажигла. Сокетыг дахин нээх нь төлөв өөрчилдөг дуудлагыг давтахыг аюулгүй болгодоггүй.
Эхлээд хилээ сонго, дараа нь тохируул
Сүлжээний хилийг ямар ч зүйлийг оновчтой болгохын өмнө нэвтрэх болон итгэх шаардлагаас сонго. VPN өөрийн талуудын хоорондох сегментийг хамгаалдаг бол програмын төгсгөлийн цэгүүд болон туннелийн гаднах аливаа нээлттэй текст сегмент чухал хэвээр. Дараа нь холболтын амьдралын мөчлөгийг тэр хил дотор тохируул. Хямд туннелийн дүгнэлт нь хүсэлт бүр гар барилтыг давтана гэсэн итгэлээс л гардаг бөгөөд яг тэр итгэлийг энд шалгаж байна.
RFC 9112-ын тогтвортой байдлын хэсэг нь дахин ашиглах нь үнэхээр юу амлаж байгаа, түүний дотор холболтыг дуусгах нөхцлийн лавлагаа юм. Тэдгээрийг үл тоомсорлож буй хэмжилтэд итгэхийн өмнө нэг удаа унш.