21.2. HTTP protokoli
HTTP ( Hyper Text Transfer Protocol) – webning ilova pog’onasi protokoli
bo’lib, u webning yuragi hisoblanadi. U [RFC 1945] va [RFC 2616] da o’rnatiladi.
HTTP 2ta dasturda joriy etiladi: klient dastur va server dastur. Turli xil oxirgi
qurilmalarda ishlovchi klient va server dasturlari bir-biri bilan HTTP xabarlari
orqali aloqa o’rnatishadi. HTTP ushbu xabarlarning strukturasini hamda server va
klient o’rtasida xabarlar qanday almashinishini belgilaydi. HTTP ni to’liq
tushuntirishdan oldin web terminalogiyasi haqida to’xtalib o’tishimiz lozim.
Web sahifa bir nechta ob’yektlardan tashkil topadi. Ob’yekt URL
tomonidan addreslangan bo’lib, u HTML fayl, JPEG rasm, Java applet yoki video
klip ko’rinishida bo’lishi mumkin. Ko’plab web sahifalar HTML fayllar
bazasidan va manbalarga ega bir nechta obyektlardan tashkil topgan. Masalan,
279
web sahifa HTML matn va 5 ta JPEG rasmdan tashkil topgan bo’lsa, shunda u
jami 6 ta ob’yektga ega bo’ladi. HTML fayl bazasi sahifadagi qolgan ob’yektlarni
URL orqali manbalaydi. Har bir URL 2 ta komponentga ega: serverning xost nomi
va
ob’yektning
yo’li
nomi.
Masalan,
quyidagi
URL:
http://www.someSchool.edu/someDepartment/picture.gif
,
bunda
www.someSchool.edu host nomi va /someDepartment/picture.gif esa yo’l nomi.
Web brauzerlar HTTP ning klient tomonini ifodalagani uchun biz teng ma’noli
brauzer va klient so’zlarini ishlatishimiz mumkin. Web serverlar o’z navbatida
HTTP ning server tomonini ifodalaydi. Mashhur web serverlarga misol tariqasida
Apache va Microsoft Internet Information serverlarini keltirish mumkin.
21.3. SMTP protokoli
SMTP – elektron pochta uchun eng asosiy ilova pog’ona protokoli
hisoblanadi. U xabarni yuboruvchi serverdan qabul qiluvchi serverga jo’natishda
TCP ning ma’lumotni ishonchli yetkazish xizmatidan foydalanadi. Boshqa ko’plab
ilova pog’ona protokollari kabi SMTP ham 2 ta tomonga ega: klient tomon –
yuboruvchining pochta serveri; server tomon – qabul qiluvchining pochta serveri.
Har bir pochta serveri ham klient ham server tomon bo’lishi mumkin. Agar pochta
serveri xabarni boshqa bir pochta serveriga yuborsa, bu holda u SMTP klienti,
aksincha, xabarni biror pochta serveridan qabul qilsa, u holda SMTP serveri
hisoblanadi.
Yuqorida aytib o’tilganidek, SMTP protokoli elektron pochtaning yuragi
hisoblanadi va u [RFC 5321] da ifodalanadi. SMTP protokoli HTTP protokolidan
ancha yil oldin yaratilgan (1982-yillar boshlari). Garchi SMTP ko’plab ajoyib
sifatlarga ega bo’lsada, u eskirgan xarakteristikalarni o’zlashtirgan. Masalan,
bunda barcha pochta xabarlar boshdan oxirigacha 7-bit ASCII ko’rinishda bo’ladi
(boshqalarda esa xabarning faqat sarlavha qismi ASCII ko’rinishda ).
280
SMTP ning ishlash tamoyilini 21.3-rasmda tasvirlangan misol orqali ko’rib
chiqamiz.
Faraz qilaylik, Alisa oddiy ASCII xabarini klientga yubormoqchi:
1. Alisa o’zining agentiga murojaat qiladi, klientning elektron pochta adresi
(masalan, klient@someschool.edu) ni kiritadi, xabarni yaratadi va xabarni
yuborilishini tasdiqlaydi.
2. Alisaning agenti xabarni uning pochta serveriga yuboradi va xabar u yerda
navbatga turadi.
21.3-rasm. Alisaning xabarni klientga yuborishi
3. SMTP ning klient tomoni bo’lgan Alisaning pochta serveri navbatga turgan
xabarni ko’radi va SMTP ning server tomoni bo’lgan klientning pochta serveriga
TCP bog’lanishni ochadi.
4. SMTP ning klienti Alisaning xabarini TCP bog’lanish orqali server tomonga
yuboradi.
5. SMTP ning server tomoni, ya’ni klientning pochta serveri xabarni qabul
qiladi. Keyin klientning pochta serveri xabarni klientning pochta qutisiga
joylashtiradi.
6. Klient xabarni o’qish uchun o’zining agentiga murojaat qiladi.
Shuni ta’kidlash joizki, SMTP pochtani yuborishda, odatda, vositachi pochta
serverlardan foydalanmaydi, hattoki, xabar almashuvchi 2 ta pochta serverlari
dunyoning qarama-qarshi nuqtalarida joylashgan bo’lsa ham. Agar Alisaning
serveri Hong Kong da va klientning serveri New Yorkda joylashgan bo’lsa, TCP
281
bog’lanish o’zaro Hong Kong va New York serverlari o’rtasida bo’ladi. Agar
klientning pochta serveri o’chirilgan bo’lsa, xabar biror bir vositachi pochta
serverida emas, balki Alisaning pochta serverida yangi urinishlar amalga
oshirilguncha saqlanadi.
SMTP klient (C) va SMTP server (S) o’rtasida xabar almashish jarayonini
misol tariqasida ko’rib chiqamiz. Klientning xost nomi “crepes.fr” va serverning
xost nomi “hamburger.edu” bo’lsin. Klient va server o’zlarining ASCII matn
qatorlarini mos ravishda o’zlarining TCP soketiga yuborishadi. TCP bog’lanish
o’rnatilganidan so’ng quyidagi dialog boshlanadi:
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM:
S: 250 Alisa @crepes.fr ... Sender ok
C: RCPT TO:
S: 250 klient@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with “.” on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
Yuqoridagi misolda klient xabar (“Do you like ketchup? How about
pickles?”) ni pochta serveri “crepes.fr” dan pochta serveri “hamburger.edu” ga
yubordi. Bunda klient 5 ta klient kiritgan: HELO (HELLO ning abreviaturasi),
282
MAIL FROM, RCPT TO, DATA, va QUIT. Bundan tashqari, klient serverga
xabar oxirini anglatuvchi qatorni ham yuboradi. Server klientning buyruqlariga
kod hamda ba’zi bir ingliz tilidagi jumlalar bilan javob qaytaradi. Shuni
qo’shimcha qilish kerakki, SMTP doimiy bog’lanishdan foydalanadi: agar xabar
yuboruvchi pochta serveri bir necha xabarga ega bo’lsa, u holda bu server barcha
xabarlarni bitta TCP bog’lanish orqali yuboradi. Klient har bir xabarni yangi
“MAIL FROM: crepes.fr” qatori bilan boshlaydi va barcha xabarlar yuborilgandan
so’ng QUIT ni kiritadi.
SMTP bilan haqiqiy dialogni amalga oshirmoqchi bo’lsangiz Telnet dan
foydalaning. Buning uchun “telnet serverName 25” qatorini kiriting.Bu yerda
serverName – mahalliy pochta serveri nomidir. Bu ishni amalga oshirganingizda,
mahalliy xost va pochta serveri o’rtasida TCP bog’lanish o’rnatiladi. Yuqoridagi
qatorni kiritganingizdan so’ng, siz darhol serverdan “220” javob xabarini qabul
qilasiz. Keyin esa mos ravishda HELO, MAIL FROM, RCPT TO, DATA,
CRLF.CRLF va QUIT buyruqlarini kiriting.
|