Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 42

Автор Π­Ρ€ΠΈΠΊ Π Π΅ΠΉΠΌΠΎΠ½Π΄

Π‘: <ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ слуТСбному ΠΏΠΎΡ€Ρ‚Ρƒ 110>

S: +OK POP3 server ready < [email protected]>

Π‘: USER bob

S: +OK bob

C: PASS redqueen

S: +OK bob's maildrop has 2 messages (320 octets)

C: STAT

S: +OK 2 320

C: LIST

S: +OK 2 messages (320 octets)

S: 1 120

S: 2 200

S: .

C: RETR 1

S: +OK 120 octets

S: <POP3-сСрвСр отправляСт тСкст сообщСния 1>

S: .

Π‘: DELE 1

S: +OK message 1 deleted

Π‘: RETR 2

S: +OK 200 octets

S: <POP3-сСрвСр отправляСт тСкст сообщСния 2>

S: .

Π‘: DELE 2

S: +OK message 2 deleted

Π‘: QUIT

S: +OK dewey POP3 server signing off (maildrop empty)

C: <ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚ соСдинСниС>

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя сущСствуСт нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ. НаиболСС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ… являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ POP3 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ состояния вмСсто Ρ‚Ρ€Π΅Ρ…Π·Π½Π°Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² состояния, примСняСмых Π² SMTP. НСсомнСнно, сСмантика запросов Ρ€Π°Π·Π»ΠΈΡ‡Π½Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ "сСмСйноС сходство" (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ описано Π΄Π°Π»Π΅Π΅ Π² настоящСй Π³Π»Π°Π²Π΅ ΠΏΡ€ΠΈ рассмотрСнии ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Internet) ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ.

5.3.3. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: IMAP, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» доступа ΠΊ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌ сообщСниям

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ рассмотрСниС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня Internet, рассмотрим ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» IMAP (Internet Message Access Protocol β€” ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» доступа ΠΊ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌ сообщСниям Π² Internet). IMAP β€” Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», спроСктированный Π² нСсколько ΠΈΠ½ΠΎΠΌ стилС. Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Π‘:, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ, Π° строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с 5:, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌ сСрвСром. ВСкст, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ курсивом, прСдставляСт собой ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5.9. IMAP-сСанс

Π‘: <ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ слуТСбному ΠΏΠΎΡ€Ρ‚Ρƒ 143>

S: * OK example.com IMAP4rev1 V12.264 server ready

Б: А0001 USER "frobozz" "xyzzy"

S: * OK User frobozz authenticated

C: A0002 SELECT INBOX

S: * 1 EXISTS

S: * 1 RECENT

S: * FLAGS (\Answered \Flagged \Deleted \Draft \Seen)

S: * OK [UNSEEN 1] first unseen message in /var/spool/mail/esr

S: A0002 OK [READ-WRITE] SELECT completed

C: A0003 FETCH 1 RFC822.SIZE  ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² сообщСний

S: * 1 FETCH (RFC822.SIZE 2545)

S: A0003 OK FETCH completed

C: A0004 FETCH 1 BODY[HEADER] ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ

                              сообщСния

S: * 1 FETCH (RFC822.HEADER {1425}

<сСрвСр отправляСт 1425 ΠΎΠΊΡ‚Π΅Ρ‚ΠΎΠ² ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сообщСния>

S: )

S: А0004 OK FETCH completed

Π‘: А0005 FETCH 1 BODY[TEXT]     ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅Π»Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ

                                сообщСния

S: * 1 FETCH (BODY[TEXT] {1120}

<сСрвСр отправляСт 1120 ΠΎΠΊΡ‚Π΅Ρ‚ΠΎΠ² ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сообщСния>

S: )

S: * 1 FETCH (FLAGS (\Recent \Seen))

S: А0005 OK FETCH completed

Π‘: A0006 LOGOUT

S: * BYE example.com IMAP4rev1 server terminating connection

S: A0006 OK LOGOUT completed

C: <ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚ соСдинСниС>

Π’ IMAP полСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ограничиваСтся нСсколько ΠΈΠ½Π°Ρ‡Π΅. ВмСсто Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ отправляСтся Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π°. Π­Ρ‚ΠΎ нСсколько ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° сСрвСрС (сообщСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ скомпонованы Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΈΡ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ просто ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² ΠΏΠΎΡ‚ΠΎΠΊ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½Π°), ΠΎΠ΄Π½Π°ΠΊΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ объСм пространства, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² цСлях Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ сообщСния для Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, слСдуСт Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ маркируСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π² запросС. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΡƒ A000n, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любой ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅. Данная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ позволяСт Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сСрвСру ΠΏΠΎΡ‚ΠΎΠΊ IMAP-ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π΅ оТидая ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Π΅ΠΌ просто ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ Π±Π»ΠΎΠΊΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… возвращСния. Данная ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° сокращаСт Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» IMAP (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для Π·Π°ΠΌΠ΅Π½Ρ‹ POP3) являСтся прСвосходным ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠΉ ΠΈ ΠΌΠΎΡ‰Π½ΠΎΠΉ конструкции ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π² Internet, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, достойным изучСния ΠΈ подраТания.

5.4. ΠœΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня

Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Ρ‹ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для хранСния этих Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня Π±Ρ‹Π»ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· сСти. ΠŸΡ€Π°Π²Π΄Π°, Π²Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ полоса пропускания сСти являСтся Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ, Ρ‡Π΅ΠΌ устройства хранСния, ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ приносит больший Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ. Однако прСимущСства прозрачности ΠΈ способности ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ тСкстовых Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ достаточно устойчивыми, поэтому Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ² Π½Π΅ поддались ΠΈΡΠΊΡƒΡˆΠ΅Π½ΠΈΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π½ΠΎΠΉ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

5.4.1. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня Π² Internet

RFC 3117 ΠœΠ°Ρ€ΡˆΠ°Π»Π° Π ΠΎΡƒΠ·Π° (Marshall Rose), "On the Design of Application Protocols"[54] прСдставляСт ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ вопросов проСктирования ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня Π² Internet. Π’ Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΎΡΡΠ½ΡΡŽΡ‚ΡΡ нСсколько Ρ‡Π΅Ρ€Ρ‚ классичСских ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня Internet, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ SMTP, POP ΠΈ IMAP, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСтся информативная классификация Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ². Π”Π°Π½Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² число Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹.

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Internet являСтся тСкстовым. Π’ Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ однострочныС запросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ мноТСство строк. Π‘Π»ΠΎΠΊΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ с ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΉ Π² ΠΎΠΊΡ‚Π΅Ρ‚Π°Ρ…, Π»ΠΈΠ±ΠΎ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой строку ".\r\n". Π’ послСднСм случаС полСзная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° заполняСтся Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. ВсС строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠΏΠΎΠ·Π½Π°Π½ΠΈΠ΅ ограничитСля ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ заполнСния. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² состоят ΠΈΠ· ΠΊΠΎΠ΄Π° состояния, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ΅ сообщСниС.

ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌ прСимущСством Π΄Π°Π½Π½ΠΎΠ³ΠΎ классичСского стиля являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ просто Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° Π½Π΅ нуТдаСтся Π² ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… измСнСниях, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ запросам. И поэтому ΠΎΡ‡Π΅Π½ΡŒ просто ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ способны ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ синтаксичСский Π°Π½Π°Π»ΠΈΠ· нСизвСстных запросов ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΠ»ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. ВсС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ SMTP, POP3 ΠΈ IMAP Π·Π° врСмя ΠΈΡ… сущСствования довольно часто Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ»ΠΈΡΡŒ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ взаимодСйствия. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌ, ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎ спроСктированныС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ извСстны ΠΊΠ°ΠΊ нСустойчивыС.

5.4.2. HTTP ΠΊΠ°ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня

Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² 1993 Π³ΠΎΠ΄Ρƒ World Wide Web достигла критичСской массы, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΡƒΡΠΈΠ»ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽΡΡ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ спСциализированных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Π½Π°Π΄ HTTP, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Web-сСрвСры ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠ΅ слуТСбныС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Вакая стратСгия ТизнСспособна, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ HTTP являСтся вСсьма простым ΠΈ ΠΎΠ±Ρ‰ΠΈΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ. HTTP-запрос прСдставляСт собой сообщСниС Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ RFC-822/MIME. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ содСрТат ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ свСдСния ΠΏΠΎ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π° пСрвая строка прСдставляСт собой Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ рСсурсС, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ указатСля рСсурсов (Universal Resource Indicator β€” URI). НаиболСС Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ GET (доставка рСсурса), PUT (модификация рСсурса) ΠΈ POST (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΡƒ ΠΈΠ»ΠΈ сСрвСрному процСссу). НаиболСС Π²Π°ΠΆΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ URI являСтся URL, ΠΈΠ»ΠΈ Uniform Resource Locator (ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ рСсурса), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ рСсурс ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ слуТбы, ΠΈΠΌΠ΅Π½ΠΈ ΡƒΠ·Π»Π° ΠΈ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ рСсурса Π½Π° Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡƒΠ·Π»Π΅. HTTP-ΠΎΡ‚Π²Π΅Ρ‚ являСтся простым RFC-822/MIME-сообщСниСм ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² сСбС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ содСрТимоС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ интСрпрСтируСтся ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ.

Web-сСрвСры ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ транспортным ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΈ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ запросов HTTP, Π° Ρ‚Π°ΠΊΠΆΠ΅ стандартными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ слуТб, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ http ΠΈ ftp. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто ΠΏΠΈΡΠ°Ρ‚ΡŒ для Web-сСрвСров Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ нСстандартныС Ρ‚ΠΈΠΏΡ‹ слуТб, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π΄ΠΈΡΠΏΠ΅Ρ‚Ρ‡Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ элСмСнтам Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° URI.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ большого количСства Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ Ρ‡Π΅Ρ€Π΅Π· стандартный ΠΏΠΎΡ€Ρ‚ HTTP-слуТбы ΠΈ Π½Π΅ нуТдаСтся Π² собствСнном TCP/IP-ΠΏΠΎΡ€Ρ‚Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ явноС прСимущСство. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ брандмауэров ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΡ€Ρ‚ 80 ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ€Π΅Π²Π°Ρ‚Ρ‹ ΠΊΠ°ΠΊ тСхничСскими трудностями, Ρ‚Π°ΠΊ ΠΈ Ρ‚Π΅ΠΌΠΈ, Ρ‡Ρ‚ΠΎ связаны с ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ.