Π’ соврСмСнной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ 1Π‘ ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€ΠΎΠ»ΡŒ. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°ΠΌΠΈ, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ прилоТСниями ΠΈΠ»ΠΈ внСшними бухгалтСрскими сСрвисами Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±Π΅Π· ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ входящих ΠΈ исходящих сигналов. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ часто приходится ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ HTTP-сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ сторонних ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON ΠΈΠ»ΠΈ XML.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ взаимодСйствия Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ понимания ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° запроса Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠžΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° получСния ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ нСсколько этапов Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ, дСсСриализации ΠΈ записи Π² Π±Π°Π·Ρƒ. Π›ΡŽΠ±Π°Ρ ошибка Π½Π° этом ΠΏΡƒΡ‚ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ зависанию соСдинСния, Ρ‡Ρ‚ΠΎ нСдопустимо Π² высоконагруТСнных систСмах.

Рассмотрим Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ взаимодСйствия ΠΈ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΎΠ±ΠΌΠ΅Π½Π°.

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ HTTP-сСрвиса Π² 1Π‘

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с внСшними запросами Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ HTTP-сСрвисы. Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выступаСт Π² Ρ€ΠΎΠ»ΠΈ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡ€Ρ‚Ρƒ Π²Π΅Π±-сСрвСра. ИмСнно ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ входящиС соСдинСния ΠΈ пСрСнаправляСт ΠΈΡ… Π² ΠΊΠΎΠ΄ 1Π‘ для дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сСрвис ΠΈΠΌΠ΅Π΅Ρ‚ свой ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ адрСс (URL) ΠΈ Π½Π°Π±ΠΎΡ€ допустимых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π§Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ GET для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ POST для ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ обновлСния. Π’Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° доступа, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСсанкционированного чтСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· вашСй Π±Π°Π·Ρ‹.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° запроса происходит Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅, привязанном ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ URL-ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ЗапросHTTP, содСрТащСму Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Ρ‚Π΅Π»ΠΎ сообщСния. ИмСнно ΠΈΠ· этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ.

πŸ’‘

ВсСгда провСряйтС ΠΌΠ΅Ρ‚ΠΎΠ΄ запроса (GET/POST) Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ записи Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· бСзопасный ΠΊΠ°Π½Π°Π» получСния.

БистСма автоматичСски парсит входящий ΠΏΠΎΡ‚ΠΎΠΊ, Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ интСрпрСтация строки ΠΊΠ°ΠΊ числа ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСго скрипта. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ пСрвичная валидация β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап любой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Алгоритм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ входящих Π΄Π°Π½Π½Ρ‹Ρ…

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° приняла сигнал ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, начинаСтся основная Π»ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Ρ‚Π΅Π»ΠΎ запроса. Если Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² понятный для 1Π‘ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ Массив.

ИспользованиС встроСнных срСдств Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ структура входящих Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ЖСсткая привязка ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠΎΠ»Π΅ΠΉ Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΡ… сущСствования ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ падСнию сСрвиса ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°.

β˜‘οΈ Π­Ρ‚Π°ΠΏΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запроса

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 6

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅. Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ систСмы ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² UTF-8, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π±Π°Π·Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ строк Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ явно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ появлСния"кракозябр" Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΈΠ»ΠΈ справочниках.

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

Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ

УспСшная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° запроса Π½Π΅ заканчиваСтся записью Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Ρƒ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Для этого формируСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠžΡ‚Π²Π΅Ρ‚HTTP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит статус выполнСния ΠΈ, ΠΏΡ€ΠΈ нСобходимости, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ считаСтся ΠΊΠΎΠ΄ 200 OK. Если ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ логичСская ошибка, слСдуСт Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ΄Ρ‹ сСрии 4xx ΠΈΠ»ΠΈ 5xx. Π­Ρ‚ΠΎ позволяСт внСшним систСмам автоматичСски Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сбои, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ‚ΡŒ администратора.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹?

Если Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΊΠΎΠ΄ 200 ΠΏΡ€ΠΈ ошибкС, клиСнтская систСма посчитаСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· своСй ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, хотя Π² 1Π‘ ΠΎΠ½ΠΈ Π½Π΅ записались. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π’Π΅Π»ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π°Ρ‰Π΅ всСго формируСтся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΎΡ‚Π²Π΅Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈ согласована с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ внСшнСй систСмы. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅"success" (Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) ΠΈ ΠΏΠΎΠ»Π΅"message" ΠΈΠ»ΠΈ"data" с дСталями.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Content-Type Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ application/json; charset=utf-8 Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ сторона ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ ΠΊΠ°ΠΊ тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ внСшниС сСрвисы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡ‹Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΡΠ΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ, Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… β€” Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. НадСТный ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ всС эти сцСнарии Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Π²Π°ΠΆΠ½ΠΎ Π½Π΅ просто ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ администратору впослСдствии ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ сбоя. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ, Π½ΠΎ Π½Π΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… посторонним.

πŸ’‘

Никогда Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚Π΅ тСкст систСмного ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ β€” это риск ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ структурС вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ вСрсиях ПО.

БущСствуСт нСсколько Ρ‚ΠΈΠΏΠΎΠ² ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто. Π­Ρ‚ΠΎ ошибки синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° JSON, ошибки Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ записи Π² Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ ΠΈ ошибки Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΈ записи ΠΎΠ±Ρ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ошибок рСкомСндуСтся ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ свой ΠΊΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π°. НапримСр, ΠΏΡ€ΠΈ ошибкС Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ 400 Bad Request, Π° ΠΏΡ€ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ошибкС сСрвСра β€” 500 Internal Server Error. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстро Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π½Π° сторонС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€Π°.

Код ΠΎΡ‚Π²Π΅Ρ‚Π° ОписаниС ситуации Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ дСйствиС
200 OK Запрос ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ НичСго Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, опСрация Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°
400 Bad Request НСвСрный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ запроса ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ API
401 Unauthorized Ошибка Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ 1Π‘
500 Internal Error Ошибка Π½Π° сторонС сСрвСра 1Π‘ Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» рСгистрации ΠΈ Π»ΠΎΠ³ΠΈ сСрвСра

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ авторизация запросов

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ доступ ΠΊ HTTP-сСрвисам 1Π‘ прСдставляСт ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΡƒΡŽ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ бСзопасности. Π›ΡŽΠ±ΠΎΠΉ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ врСдоносный запрос ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π‘Π°ΠΌΡ‹ΠΉ простой способ β€” использованиС стандартной HTTP-Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ 1Π‘ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€ΠΎΠ»ΡŒ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΡƒΡŽ Π²Ρ‹Π·ΠΎΠ² Π²Π½Π΅ΡˆΠ½ΠΈΡ… соСдинСний, Π½ΠΎ ΠΏΡ€Π°Π²Π° этой Ρ€ΠΎΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ минимально Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ. НС Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΏΡ€Π°Π²Π° администратора сСрвисному ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” использованиС Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² доступа. Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ запроса пСрСдаСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСтся Π² ΠΊΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π΅Π΄ основной Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. Π­Ρ‚ΠΎ позволяСт Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ доступом ΠΈ ΠΎΡ‚Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π±Π΅Π· смСны ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Базовая HTTP-авторизация
Π’ΠΎΠΊΠ΅Π½Ρ‹ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ…
IP-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ
Π‘Π΅Π· Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (локальная ΡΠ΅Ρ‚ΡŒ)

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ DDoS-Π°Ρ‚Π°ΠΊ ΠΈ брутфорса. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства запросов Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ IP-адрСса ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π²Π΅Π±-сСрвСра (IIS ΠΈΠ»ΠΈ Apache) ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ счСтчика Π² самом ΠΌΠΎΠ΄ΡƒΠ»Π΅ 1Π‘.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Π½Π΅Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ настройтС SSL-сСртификат Π½Π° Π²Π΅Π±-сСрвСрС ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» HTTPS для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° запросов Π² 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рСсурсоСмкой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, особСнно Ссли ΠΎΠ½Π°Π΅Ρ‚ слоТныС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· Π±Π°Π·Ρ‹ ΠΈΠ»ΠΈ запись большого количСства Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠœΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρƒ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ запросам, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ большС Π½Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ систСму.

Один ΠΈΠ· способов ускорСния β€” отлоТСнная запись. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ синхронно Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ запроса, ΠΌΠΎΠΆΠ½ΠΎ быстро ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. ΠžΡ‚Π²Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΡ€ΠΈ этом возвращаСтся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ.

ИспользованиС индСксации ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ΄ΡƒΡ‚ ΠΎΡ‚Π±ΠΎΡ€Ρ‹, Ρ‚Π°ΠΊΠΆΠ΅ критичСски Π²Π°ΠΆΠ½ΠΎ. Если ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса систСма сканируСт Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, врСмя ΠΎΡ‚Π²Π΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ расти ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ с ростом Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Для тяТСлых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ рСкомСндуСтся Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Длинная транзакция Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ процСсса Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ этапы сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅?

Π­Ρ‚ΠΎ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ основного ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запроса. Он позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сотни Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) Π±Π΅Π· оТидания ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ настройки Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. ВсСгда свСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ руководствС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° для вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии.

Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ ошибки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ спСциалисты Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ настройкС взаимодСйствия. Одной ΠΈΠ· самых частых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ являСтся ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с кирилличСскими символами. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π° Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅.

Другая распространСнная ошибка β€” отсутствиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ситуации, ΠΊΠΎΠ³Π΄Π° внСшняя систСма присылаСт пустой массив ΠΈΠ»ΠΈ null вмСсто ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ свойству Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ сСрвиса.

  • 🚫 Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ²: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ ошибок Π² ΠΆΡƒΡ€Π½Π°Π», ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ часы.
  • 🚫 ЖСсткиС зависимости: ΠΊΠΎΠ΄, завязанный Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ структуру JSON Π±Π΅Π· гибкости, ломаСтся ΠΏΡ€ΠΈ любом ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½Π° сторонС ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°.
  • 🚫 Π”ΠΎΠ»Π³ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ: ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ слишком Π΄ΠΎΠ»Π³ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ очСрСдям ΠΈ остановкС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π±Π°Π·Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ тСстированиС Π½Π° тСстовой ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнты Π²Ρ€ΠΎΠ΄Π΅ Postman для эмуляции Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сцСнариСв, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠ±Ρ€Ρ‹Π²Ρ‹ связи.

Диагностика ΠΈ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ процСссов

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” Π·Π°Π»ΠΎΠ³ быстрой ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ сСрвиса. Π›ΠΎΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΊΡ‚Ρ‹ ошибок, Π½ΠΎ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄ событий постфактум.

Π’ 1Π‘ сущСствуСт нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΆΡƒΡ€Π½Π°Π»Π° рСгистрации. Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ HTTP-сСрвисов ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ"Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ" для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… событий, связанных с ΠΎΠ±ΠΌΠ΅Π½ΠΎΠΌ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Однако Π² Π±ΠΎΠ΅Π²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слСдуСт ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ Π΄ΠΎ"Ошибка", Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π±ΠΈΠ²Π°Ρ‚ΡŒ диск лишними записями.

Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся созданиС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ рСгистра свСдСний для хранСния истории Π²Π½Π΅ΡˆΠ½ΠΈΡ… запросов. Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ врСмя ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π°, IP-адрСс отправитСля, содСрТимоС запроса ΠΈ статус ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π±Π΅Π· доступа ΠΊ сСрвСрным Π»ΠΎΠ³Π°ΠΌ.

ΠŸΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π»ΠΎΠ³ΠΈ Π²Π΅Π±-сСрвСра (IIS ΠΈΠ»ΠΈ Apache). Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ошибки Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ сСти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ доходят Π΄Π°ΠΆΠ΅ Π΄ΠΎ ΠΊΠΎΠ΄Π° 1Π‘, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с SSL-сСртификатами ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€Π° запроса.

Как ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ JSON Π² 1Π‘?

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ JSON ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ строку ΠΈΠ· Ρ‚Π΅Π»Π° запроса, Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ Π΅Ρ‘ Π² структуру с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. ПослС этого Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ со структурой ΠΊΠ°ΠΊ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ 1Π‘, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ свойствам ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

Какой ΠΊΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ошибкС?

ΠŸΡ€ΠΈ ошибкС Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ 400. ΠŸΡ€ΠΈ ошибкС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” 401. ΠŸΡ€ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… β€” 500. Код 200 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ успСхС.

МоТно Π»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‡Π΅Ρ€Π΅Π· HTTP-сСрвис?

Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ. Π€Π°ΠΉΠ» пСрСдаСтся Π² Ρ‚Π΅Π»Π΅ запроса ΠΊΠ°ΠΊ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π’ ΠΊΠΎΠ΄Π΅ 1Π‘ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ запроса ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ сразу Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с Ρ‚ΠΈΠΏΠΎΠΌ поля Π₯ранилищСЗначСния.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Content-Type?

Π­Ρ‚ΠΎΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сообщаСт сСрвСру, Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅. Для JSON это application/json. Π‘Π΅Π· Π½Π΅Π³ΠΎ 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС парсинга.