Mauvzu: Server va mijoz tushunchalari Reja


Mauvzu: Socketni ishlab chiqarish



Download 371,19 Kb.
bet20/25
Sana22.07.2022
Hajmi371,19 Kb.
#839239
1   ...   17   18   19   20   21   22   23   24   25
Bog'liq
1-Mauvzu Server va mijoz tushunchalari Reja Mijoz-server tushu (1)

Mauvzu: Socketni ishlab chiqarish . Reja:

  1. Soket tushunchasi

  2. Socket interfeysi

  3. WebSocket

Soket ( inglizcha socket - soket) - jarayonlar o'rtasida ma'lumotlar almashinuvi uchun dasturiy ta'minot interfeysi nomi . Bunday almashinuv jarayonlari bitta kompyuterda ham , tarmoqqa ulangan turli kompyuterlarda ham bajarilishi mumkin . Soket

  • bu ulanishning oxirgi nuqtasini ifodalovchi mavhum ob'ekt.

Mijoz va server rozetkalari o'rtasida farq bo'lishi kerak . Mijoz rozetkalarini taxminan telefon tarmog'ining oxirgi qurilmalari bilan, server rozetkalarini esa - kalitlarga solishtirish mumkin . Mijoz ilovasi (masalan, brauzer ) faqat mijoz rozetkalarini ishlatadi va server ilovasi ( masalan, brauzer so'rov yuboradigan veb -server ) mijoz va server rozetkalarini ishlatadi .
Socket interfeysi birinchi paydo BSD UNIX . Soket dasturlash interfeysi POSIX .1 standartida tasvirlangan va ma'lum darajada barcha zamonaviy operatsion tizimlar tomonidan qo'llab -quvvatlanadi .
TCP / IP protokoli yordamida mashinalar orasidagi aloqa uchun manzillar va portlar ishlatiladi. Manzil IPv4 uchun 32 bitli, IPv6 uchun 128 bitli . Port raqami 0 dan 65535 gacha bo'lgan butun sondir ( TCP uchun ).
Bu juftlik rozetkani ( manzil va portga mos keladigan "rozetka") belgilaydi .
Ayirboshlash jarayonida, qoida tariqasida, ikkita rozetka ishlatiladi - jo'natuvchi va qabul qiluvchi rozetkasi. Masalan, HTTP portidagi serverga kirganda , rozetka shunday ko'rinadi: 194.106.118.30:80 va javob mmm.nnn.ppp.qqq: xxxxx ga o'tadi.
Har bir jarayon bir "tinglash" soket (server soket) yaratib mumkin bog'lamoq uni ba'zi operatsion tizimi portiga (haqida UNIX, sharafi yükseltilmemiş jarayonlar 1024 kamroq portlar foydalana olmaysiz).
Tinglash jarayoni odatda kutish davrasida bo'ladi, ya'ni yangi aloqa paydo bo'lganda uyg'onadi. Shu bilan birga, hozirgi vaqtda ulanishlar mavjudligini tekshirish, operatsiya uchun vaqt tugashini o'rnatish va h.k.
Har bir rozetkaning o'z manzili bor. UNIX-ga asoslangan operatsion tizimlar ko'p turdagi manzillarni qo'llab-quvvatlay oladi, lekin INET manzili va UNIX manzili talab qilinadi . Agar siz rozetkani UNIX manziliga bog'lab qo'ysangiz , ko'rsatilgan yo'l bo'ylab maxsus fayl ( rozetka fayli ) yaratiladi , u orqali har qanday mahalliy jarayonlar undan o'qish / yozish orqali aloqa o'rnatishi mumkin (qarang: Unix domen soketi ). INET rozetkalari tarmoqqa ulanadi va port raqamlarini taqsimlashni talab qiladi.
Odatda, mijoz tinglovchiga aniq "biriktiradi", shundan so'ng har qanday fayl deskriptori orqali o'qish yoki yozish u bilan server o'rtasida ma'lumotlarni uzatadi.
WebSocket - bu brauzer va veb -server o'rtasida real vaqtda xabarlar almashish uchun mo'ljallangan TCP ulanishi orqali aloqa protokoli .
W3C hozirda Web Sockets API -ni standartlashtirmoqda. Ushbu protokol standarti loyihasi IETF tomonidan tasdiqlangan .
WebSocket veb -brauzerlar va veb -serverlarda qo'llanilishi uchun mo'ljallangan, lekin uni har qanday mijoz yoki server ilovasi uchun ishlatish mumkin. WebSocket protokoli TCP protokoliga asoslangan mustaqil protokoldir. Bu brauzer va veb-sayt o'rtasida yanada yaqinroq aloqada bo'lishga, interaktiv tarkibni tarqatishga va real vaqtda ilovalarni yaratishga imkon beradi.
Mijoz va server WebSocket ulanishini o'rnatish uchun HTTP protokoliga o'xshash protokoldan foydalanadilar . Mijoz maxsus HTTP so'rovini yuboradi, unga server o'ziga xos tarzda javob beradi.
75 -protokol [ tahrir | kodni tahrirlash ]

  1. -protokol loyihasidan oldin WebSocket ulanishi quyidagicha o'rnatildi. Mijoz so'rovi: Get / demo HTTP / 1.1

Yangilash: WebSocket Ulanish: yangilash Xost: example.com
Kelib chiqishi: http://example.com WebSocket protokoli: namuna
WebSocket -ga o'tishni tasdiqlovchi server javobi:
HTTP / 1.1 101 Veb -soket protokoli bilan qo'l siqish Yangilash: WebSocket
Ulanish: yangilash
WebSocket-ning kelib chiqishi: http://example.com WebSocket-manzil: ws: //example.com/demo WebSocket protokoli: namuna
Javob yuborilgandan so'ng, WebSocket aloqasi o'rnatilgan deb hisoblanadi, mijoz va server bir xil TCP ulanishi orqali ikki tomonlama xabar almashishni boshlashi mumkin . Matnli xabar yuborish uchun ( UTF-8 da kodlangan ) undan oldin nol bayt, keyin esa 255 qiymatli bayt uzatilishi kerak.

  1. -protokol [ tahrir | kodni tahrirlash ]

2010 yil 2 -iyunda WebSocket protokoliga moslik saqlanmagan holda WebSocket ulanishini o'rnatish tartibini o'zgartirish uchun o'zgartirishlar kiritildi. Yilda 76 loyihasi WebSocket protokol nashri, spoof so'rovlar qarshi himoya qo'shildi. Yangi sxemani qo'llab -quvvatlovchi mijoz quyidagi talabni qo'yadi:
Get / demo HTTP / 1.1 Yangilash: WebSocket Ulanish: yangilash
Sec-WebSocket-Key2: 4 @ 1 46546xW% 0l 1 5 Xost: example.com
Sec-WebSocket-Key1: 12998 5 Y3 1 .P00 Kelib chiqishi: http://example.com WebSocket protokoli: namuna

^ n: ds [4U


So'rovga "Sec-WebSocket-Key1" va "Sec-WebSocket-Key2" yangi sarlavhalari va 8 baytli so'rovlar tanasi qo'shildi. Ularning barchasi mijoz tomonidan tasodifiy ravishda yaratilgan.
WebSocket -ga o'tishni tasdiqlovchi server javobi:
HTTP / 1.1 101 Veb -soket protokoli bilan qo'l siqish Yangilash: WebSocket
Ulanish: yangilash
Sec-WebSocket-ning kelib chiqishi: http://example.com Sec-WebSocket-Manzil: ws: //example.com/demo
Sec-WebSocket-Protocol: namuna
8jKS'y: G * Co, Wxa-
Javobda yangi sarlavha nomlari ("Sec-WebSocket-Origin", "Sec-WebSocket-Location", "Sec-WebSocket-Protocol" o'rniga "WebSocket-Origin", "WebSocket-Location", "WebSocket- Protocol") mavjud. va 16 baytli javob organi, quyidagicha hisoblanadi:
Sec-WebSocket-Key1 so'rov sarlavhasi qiymati ko'rsatilgan qatordan barcha raqamli bo'lmagan belgilar chiqarib tashlansin ('0' .. '9' oralig'ida emas);
olingan satrni 64 bitli butun songa aylantiring (yuqoridagi misol uchun biz 1299853100 olamiz);
olingan sonni sarlavha qiymati bilan asl satrdagi bo'shliqlar soniga bo'linib, butun songa bo'linadi;
natijada olingan raqam katta bayt formatida 4 baytli 32 bitli raqam sifatida ko'rsatilgan : yuqori bayt ofset nolida saqlanadi;
Sec-WebSocket-Key2 sarlavhasi bilan ham xuddi shunday qiling;
4) va 5) bandlardagi raqamlarni 4 baytli qatorlar sifatida talqin qilib, ularni birlashtiring (ularni bitta qatorga qo'shing) va so'rovlar tanasini mag'lubiyatga qo'shing;
qabul qilingan 16 baytli mag'lubiyatdan MD5 qiymatini hisoblang va bu qiymatni hech qanday tasvirga aylantirmasdan "qanday bo'lsa, shunday" javob qismiga yozing;
Eslatmalar.
HTTP protokoli so'rovlari va javoblariga yangi so'rovlar va javoblarning "o'xshashligiga" qaramay , ular unday emas. Masalan, so'rovning tanasi bor, lekin sarlavhalarda "Kontent uzunligi" maydoni yo'q (bu HTTP konventsiyalarini buzadi ).
Server tomoni har ikkala turdagi mijozlarni ham qo'llab-quvvatlashi va ularni so'rovda Sec- WebSocket-Key1 va Sec-WebSocket-Key2 sarlavhalarining mavjudligi yoki yo'qligi bilan farq qilishi kerak.
Protokol 07 [ tahrir | kodni tahrirlash ]
In versiyasi 07 22 aprel 2011 yil loyihasi protokoli o'zgartirilgan.
Ma'lumotlar shifrlanmagan [1] uzatiladigan 76-protokoldan farqli o'laroq, protokolning ushbu versiyasida mijozdan (brauzerdan) serverga uzatiladigan ma'lumotlarning har bir bayti, albatta, 4 baytli niqob bilan maskalanadi [2] . U har bir xabar uchun yangidan yaratiladi.
Yuborilgan xabar endi quyidagi ma'lumotlarni o'z ichiga olgan sarlavhaga ega: xabar qismlarga bo'linadi;
uzatiladigan ma'lumotlar turi; Xabar niqoblanganmi yoki yo'qmi ma'lumotlar hajmi;
niqob;
boshqa nazorat ma'lumotlari (ping, pong ...).
Mijoz va server o'rtasidagi o'zaro munosabatlar mijozning so'rovidan boshlanadi: Get / chat HTTP / 1.1
Xost: server.example.com Yangilash: veb -tarmoq Ulanish: yangilash
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ == Sec-WebSocket-ning kelib chiqishi: http://example.com Sec-WebSocket-Protocol: suhbat, superchat
Sec-WebSocket versiyasi: 7
Server javobi quyidagicha ko'rinadi:
HTTP / 1.1 101 almashtirish protokollari Yangilash: veb -tarmoq
Ulanish: yangilash
Sec-WebSocket-Qabul qilish: s3pPLMBiTxaQ9kYGzzhZRbK + xOo = Sec-WebSocket-Protocol: suhbat
Javobda Sec-WebSocket-Protocol sarlavhasi mavjud, u mijoz tomonidan qo'llab- quvvatlanadigan (chat, superchat) server tomonidan tanlangan yagona protokol (chat). Sec- WebSocket-Accept sarlavhasi quyidagicha tuziladi:
Sec-WebSocket-Key sarlavhasidan mag'lubiyat qiymatini oling va 258EAFA5-E914- 47DA-95CA-C5AB0DC85B11 qatori bilan bog'lang (berilgan misolda siz dGhlIHNhbXBsZSBub25jZQ == 258EAFA5-E914-47DA-95CD)
birinchi paragrafda olingan satrdan SHA-1 ikkilik xeshini (20 belgidan iborat ikkilik qator) hisoblang
xashni Base64 da kodlash (s3pPLMBiTxaQ9kYGzzhZRbK + xOo =) PHP -da yuqoridagi algoritmni bajarishga misol :
echo base64_encode ( SHA1 ( "dGhlIHNhbXBsZSBub25jZQ == 258EAFA5-E914- 47DA-95CA-C5AB0DC85B11" , to'g'ri ));
?>


  1. Download 371,19 Kb.

    Do'stlaringiz bilan baham:
1   ...   17   18   19   20   21   22   23   24   25




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish