4-LABORATORIYA ISHI
Mavzu: Internet manzillar va JSON ma’lumotlar almashish formati bilan
ishlash
Ishning maqsadi:
Talabalarda Java dasturlash tili java.net.* paketining URL klassi va uning
metodlari hamda JSON ma’lumotlar almashish formati bilan ishlash bo‘yicha
amaliy ko‘nikmalar hosil qilish.
Nazariy qism:
URI – Uniform Resource Identifier (yagonalashtirilgan resurs identifikatori).
URL – Uniform Resource Locator (resurs joyining yagonalashtirilgan
belgilovchisi).
URN – Uniform Resource Name (resursning yagonalashtirilgan nomi).
Ularning tahlili. URI: tarmoqdagi resurs nomi va manzilini bildiradi. Qoida
bo‘yicha URL va URNga bo‘linadi va shuning uchun URI URL va URNlardan
tashkil topgan.
URL: qandaydir resursning webdagi manzili. URL resurs joylashgani joyi va
unga murojat qilish usulini bildiradi.
URN: qandaydir resursning webdagi nomi. URNning ma’nosi shundaki,
ko‘pgina aniq bo‘lgan joylarda joylashgan aniq bir predmetning faqat nomini
bildiradi.
URI bu identifikatorning abstrakt konsepsiyasi bo‘lib, URL va URN esa
manzil va nomning real qo‘llanilishidir.
So‘rov/javob xabarlari formati. Klient so‘rov shakli. Dastur-klient ulanish
o‘rnatilganidan keyin serverga so‘rov yuboradi. Ushbu so‘rov ikki shaklda bo‘lishi
mumkin: to‘liq va oddiy so‘rov shakllarida. Oddiy so‘rov kirish usuli va resurs
so‘rovini o‘z ichiga oladi. Masalan:
GET http://polyn.net.kiae.su/
Bu yerda GET so‘zi kirish usulini anglatadi, http://polyn.net.kiae.su/ esa
resurs so‘rovidir. 0.9 dan yuqori versiyalagi protokolni qo‘lllab-quvvatlay oladigan
2
klientlar to‘liq so‘rov shaklidan foydalanishlari shart. To‘liq shakldan
foydalanilganda so‘rovda so‘rov satri, bir necha sarlavhalar (so‘rvo sarlavhasi yoki
umumiy sarlavha) va, ehtimol, resursni bildiruvchi tana ko‘rsatiladi. Bekus-Naur
shaklida to‘liq so‘rovning umumiy ko‘rinishi quyidagicha:
:= (|
>|)
>[]
Bu yerda kvadrat qavslar sarlavhaning nozaruriy elementlarini bildiradi.
So‘rov satri – resursning so‘rovidir. Farq shundaki, so‘rov satrida turli kirish
usullarini ko‘rsatish mumkin va resurs so‘rovidan keyin protokol versiyasini
ko‘rsatish kerak. Masalan, tashqi dasturni chaqirish uchun quyidagi so‘rov satridan
foydalanish mumkin:
POST http://polyn.net.kiae.su/cgi-bin/test HTTP/1.0
Bu holatda POST usuli va 1.0 protokol versiyasidan foydalaniladi.
Server javobi. Server javobi so‘rov kabi soddalashtirilgan yoki to‘liq bo‘lishi
mumkin. Soddalashtirilgan javobda server faqat server tanasini qaytaradi (masalan,
HTML-hujjat matni). To‘liq javobda klientga holat satri (Status-Line), umumiy
sarlavha, javob sarlavhasi, resurs sarlavhasi va resurs tanasi qaytariladi. Bekus-
Naur shaklida to‘liq javob quyidagicha keltiriladi:
:= (|
javobi >|)
simvoli>[]
Holat satri protokol versiyasi, qaytarish kodi va ushbu kodning qisqacha
tavsifidan iborat bo‘ladi. Masalan, u quyidagicha ko‘rinishga ega bo‘lishi mumkin:
"HTTP/1.0 200 Success"
Server javobi sarlavhasi so‘ralayotgan resursning URI adresidan va/yoki
server dasturi nomidan, va/yoki himoyalangan rejimda ishlash identifikatsiya
kodidan iborat bo‘lishi mumkin. Resurs sarlavhasi satrlari tarkibi klient so‘rovi va
server javobi uchun umumiy bo‘lib, kirish usuliga ruxsat, resurs tanasini kodlash
3
turi (resurs tarkibi), resurs tanasi tarkibi, resurs turi, resursning berilgan
nusxasining kuchga ega bo‘lish muddati, resursni oxirgi marta o‘zgartirish va
sarlavhani kengaytirish vaqtidan iborat bo‘ladi.
URL klasi java.net.* paketida joylashgan.
URL klassining metodlari: getFile(), getHost(), getPort(), getDefaultPort(),
getProtocol(), getRef(), getQuery(), getPath(), getUserInfo(), getAuthority().
JSON yoki JavaScript Object Notation - bu inson tomonidan o‘qiladigan
ma’lumotlarni almashish uchun mo‘ljallangan yengil matnli ochiq standart.
JavaScript Object Notation - fayl formatining ochiq standarti va
ma’lumotlar almashish formati bo‘lib, u atribut-qiymat juftliklari va massiv
ma’lumot turlaridan iborat ma’lumotlar obyektlarini saqlash va uzatish uchun
inson o‘qiy oladigan matndan foydalanadi.
JSON imkoniyatlaridan C, C++, Java, Python, Perl va boshqa tillar
dasturchilari foydalanishadi:
- Formatni Douglas Crockford yaratgan;
- U inson o‘qiydigan ma’lumotlar almashish uchun mo‘ljallangan;
- JavaScript skript tilidan kengaytirilgan;
- Fayl nomining kengaytmasi .json.
JSON ma’lumotlar almashish formatidan foydalanish:
- Bu brauzer kengaytmalari va veb-saytlarni o‘z ichiga olgan JavaScriptga
asoslangan dasturlarni yozishda ishlatiladi;
- JSON formati tizimlashtirilgan ma’lumotlarni seriyalashtirish va tarmoq
orqali uzatish uchun ishlatiladi;
- U asosan server va veb-ilovalar o‘rtasida ma’lumotlarni uzatish uchun
ishlatiladi;
- Umumiy ma’lumotlar bilan ta’minlash uchun veb-xizmatlar va APIlar JSON
formatidan foydalanadilar;
- U zamonaviy dasturlash tillarida ishlatilishi mumkin.
JSON ma’lumotlar almashish formati tavsifi:
- JSONni o‘qish va yozish oson;
4
- JSON yengil matnga asoslangan almashish formatidir;
- JSON dasturlash tiliga bog‘liq emas (mustaqil).
JSON sintaksisi asosan JavaScript sintaksisining qismi hisoblanadi va
quyidagilarni o‘z ichiga oladi:
- Ma’lumotlar nom/qiymat juftliklarida berilgan;
- Figurali qavslar obyektlarni o‘z ichiga oladi va ':' ikki nuqta bilan ajratilgan
nom/qiymat juftliklari vergul bilan ajratiladi;
- Kvadrat qavslar massivlarni o‘z ichiga oladi va qiymatlar vergul bilan
ajratiladi.
JSON ma’lumotlar almashish formatida ma’lumot turlari:
- Son (Number)
Integer: 1-9 raqamlar, 0 va musbat yoki manfiy
Fraction: .3, -.9 kasrlar
Exponent: e, e+, e-, E, E+, E-
Sintaksisi:
var json-object-name = { string : number_value, .......}
Misol: var obj = {marks: 97}
- Qator (String)
- var obj = {name: 'Amit'}
- Mantiqiy (Boolean) - true yoki false
- var obj = {distinction: true}
- Massiv (Array) – qiymatlarning tartiblangan qatori
{ "books": [
{ "language":"Java" , "edition":"second" },
{ "language":"C++" , "lastName":"fifth" },
{ "language":"C" , "lastName":"third" }
] }
- Object - kalit:qiymat juftligining tartibsiz to‘plami
- Null – bo‘sh
|