Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Лабораторна робота №10
«Протоколи HTTP i FTP»
НTTP
НTTP (скор. від англ. HyperText Transfer Protocol - «протокол передачі гіпертексту) - протокол прикладного рівня передачі даних (спочатку - у вигляді гіпертекстових документів). Основою HTTP є технологія «клієнт-сервер», тобто передбачається існування споживачів (клієнтів), які ініціюють з'єднання і надсилають запит, і постачальників (серверів), які очікують з'єднання для отримання запиту, роблять необхідні дії і повертають назад повідомлення з результатом HTTP в даний час повсюдно використовується у Всесвітній павутині для отримання інформації з веб-сайтів. У 2006 році в Північній Америці частка HTTP-трафіку перевищила частку P2P-мереж і склала 46%, з яких майже половина - це передача потокового відео і звуку.HTTP використовується також як «транспорту» для інших протоколів прикладного рівня, таких як SOAP, XML-RPC, WebDAV.
Основним об'єктом маніпуляції в HTTP є ресурс, на який вказує URI (англ. Uniform Resource Identifier) в запиті клієнта. Зазвичай такими ресурсами є що зберігаються на сервері файли, але ними можуть бути логічні об'єкти або щось абстрактне. Особливістю протоколу HTTP є можливість вказати в запиті і відповіді спосіб представлення одного і того ж ресурсу за різними параметрами: формату, кодуванні, мови і т. д. Саме завдяки можливості вказівки способу кодування повідомлення клієнт і сервер можуть обмінюватися двійковими даними, хоча даний протокол є текстовим.
HTTP - протокол прикладного рівня, аналогічними йому є FTP і SMTP. Обмін повідомленнями йде по звичайній схемі «запит-відповідь». Для ідентифікації ресурсів HTTP використовує глобальні URI. На відміну від багатьох інших протоколів, HTTP не зберігає свого стану. Це означає відсутність збереження проміжного стану між парами «запит-відповідь». Компоненти, що використовують HTTP, можуть самостійно здійснювати збереження інформації про стан, пов'язаної з останніми запитами і відповідями. Браузер, що посилає запити, може відстежувати затримки відповідей. Сервер може зберігати IP-адреси і заголовки запитів останніх клієнтів. Однак сам протокол не обізнаний про попередні запити і відповідях, в ньому не передбачена внутрішня підтримка стану, до нього не висуваються такі вимоги.
HTTPS (Hypertext Transfer Protocol Secure) - розширення протоколу HTTP, підтримує шифрування. Дані, що передаються по протоколу HTTP, «упаковуються» в криптографічний протокол SSL або TLS, тим самим забезпечується захист цих даних. На відміну від HTTP, для HTTPS за замовчуванням використовується TCP-порт 443. Система була розроблена компанією Netscape Communications Corporation для забезпечення автентифікації і захищене з'єднання. HTTPS широко використовується у системах, в яких важлива безпека з'єднання, наприклад, у платіжних системах. В даний час HTTPS підтримується найбільш популярними браузерами. HTTPS не є окремим протоколом. По суті це звичайний HTTP, що працює через шифровані транспортні механізми SSL і TLS. Він забезпечує прийнятну захист від атак, заснованих на прослуховуванні мережевого з'єднання - від сніфферскіх атак і атак типу man-in-the-middle за умови, що будуть використовуватися адекватні шифрувальні засоби та сертифікат сервера перевірений і йому довіряють.
За замовчуванням HTTPS URL використовує 443 TCP-порт (для незахищеного HTTP - 80). Щоб підготовити веб-сервер для обробки https-з'єднань, адміністратор повинен отримати і встановити в систему сертифікат для цього веб-сервера. Сертифікат складається з двох частин (двох ключів) - public і private. Public-частина сертифікату використовується для зашифровування трафіку від клієнта до сервера в захищеному з'єднанні, private-частина - для розшифрування отриманого від клієнта зашифрованого трафіку на сервері. Сертифікат можна отримати в компанії-сертификатора (наприклад, VeriSign) - це платна послуга. Сертифікат повинен бути підписаний уповноваженою стороною (компанією-сертифікаторів - Certificate authority), яка буде гарантувати клієнтам, що власник сертифіката є тим, за кого себе видає.
Ця система також може використовуватися для автентифікації клієнта, щоб забезпечити доступ до сервера тільки авторизованим користувачам. Для цього адміністратор зазвичай створює сертифікати для кожного користувача і завантажує їх в браузер кожного користувача. Також будуть прийматися всі сертифікати, підписані організаціями, яким довіряє сервер. Такий сертифікат зазвичай містить ім'я та адресу електронної пошти авторизованого користувача, які перевіряються при кожному з'єднанні, щоб перевірити особу користувача без введення пароля.У HTTPS для шифрування використовується довжина ключа 40, 56, або 128 біт. Таке шифрування значно ускладнює зловмисникові пошук паролів та іншої особистої інформації.
FTP
FTP (англ. File Transfer Protocol - протокол передачі файлів) - протокол, призначений для передачі файлів в комп'ютерних мережах. FTP дозволяє підключатися до серверів FTP, переглядати вміст каталогів і завантажувати файли з сервера або на сервер, крім того, можливий режим передачі файлів між серверами.FTP є одним із найстаріших прикладних протоколів, що з'явився задовго до HTTP, в 1971 році. До початку 90-х років на FTP припадало близько половини трафіку в мережі Інтернет. Він і сьогодні широко використовується для розповсюдження ПЗ і доступу до віддалених хостів.
Протокол FTP відноситься до протоколів прикладного рівня і для передачі даних використовує транспортний протокол TCP. Команди і дані, на відміну від більшості інших протоколів передаються по різних портах. Порт 20, що відкривається на стороні сервера, використовується для передачі даних, порт 21 для передачі команд. Порт для прийому даних клієнтом визначається в діалозі узгодження. У випадку, якщо передача файлу була перервана з яких-небудь причин, протокол передбачає можливість докачки файлу, що буває дуже зручно при передачі великих файлів.
FTPS (File Transfer Protocol SSL) - це захищений протокол передачі даних. У процесі передачі інформації по протоколу FTPS використовується як криптографічний протокол SSL (Secure Sockets Layer).
Використовуючи протокол FTPS, можна передавати або приймати дані через свого інтернет - провайдера в повній впевненості, що ніхто крім вас не дізнається, які саме маніпуляції ви робили зі своїми файлами.
Існує два види з'єднання FTPSExplicit FTPS - порт 21. Команди FTP передаються без шифрування. Шифруються тільки дані.
Implicit FTPS - порт 990. Шифруються команди FTP і дані.