1-Mauvzu: Server va mijoz tushunchalari Reja: Mijoz-server tushunchasi Mijoz-server xarakteristikasi


-Mauvzu: Socketni ishlab chiqarish



Download 0,81 Mb.
Pdf ko'rish
bet24/29
Sana13.06.2022
Hajmi0,81 Mb.
#665734
1   ...   21   22   23   24   25   26   27   28   29
Bog'liq
2 5438208446832840386

17-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 ] 
75 -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. 
76 -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 ));
?> 



Download 0,81 Mb.

Do'stlaringiz bilan baham:
1   ...   21   22   23   24   25   26   27   28   29




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