Історія розвитку Інтернет - Основи Веб-програмування

  1. компоненти WWW
  2. Мова гіпертекстової розмітки HTML
  3. протокол HTTP
  4. Загальний шлюзовий інтерфейс CGI
  5. Програмне забезпечення сервісу WWW
  6. Еволюція Веб сайтів

Хронологія подій по роках.

1969 - сеанс зв'язку ARPANET

1971 - відправка першого Email

1983 - ARPANET переходить на TCP / IP

1984 - запущена система DNS

1989 - поява WWW, HTTP, HTML

1993 - перший браузер NCSA Mosaic

1995 - Yahoo, Hotmail, Amazon.com

Примітка

Інтернет - це глобальна комп'ютерна мережа, яка об'єднує сотні мільйонів комп'ютерів в загальний інформаційний простір. Інтернет являє свою інфраструктуру для прикладних сервісів різного призначення, найпопулярнішим з яких є Всесвітня Павутина - World Wide Web (www).

World Wide Web (www, web, рус .: веб, Всесвітня Павутина) - розподілена інформаційна система, що надає доступ до гіпертекстових документів по протоколу HTTP.

WWW - мережева технологія прикладного рівня стека TCP / IP, побудована на клієнт-серверній архітектурі і використовує інфраструктуру Інтернет для взаємодії між сервером і клієнтом (www).

Сервери www (веб-сервери) - це сховища гіпертекстової (в загальному випадку) інформації, керовані спеціальним програмним забезпеченням.

Документи, представлені у вигляді гіпертексту, називаються веб-сторінками. Кілька веб-сторінок, об'єднаних загальною тематикою, оформленням, пов'язаних гіпертекстовими посиланнями і зазвичай знаходяться на одному і тому ж веб-сервері, називаються веб-сайтом.

Для завантаження і перегляду інформації з веб-сайтів використовуються спеціальні програми - браузери, здатні обробляти гіпертектовую розмітку і відображати вміст веб-сторінок.

Хронологія подій по роках

Архітектура сервісу WWW

В основі www - взаємодія між веб-сервером і браузерами по протоколу HTTP (HyperText Transfer Protocol). Веб-сервер - це програма, запущена на мережевому комп'ютері і чекає клієнтські запити по протоколу HTTP. Браузер може звернутися до веб-сервера по доменному імені або по ip-адресою, передаючи в запиті ідентифікатор необхідного ресурсу. Отримавши запит від клієнта, сервер знаходить відповідний ресурс на локальному пристрої зберігання і відправляє його як відповідь. Браузер приймає відповідь і обробляє його відповідним чином, в залежності від типу ресурсу (відображає гіпертекст, показує зображення, зберігає отримані файли і т.п.).

Основний тип ресурсів Всесвітньої павутини - гіпертекстові сторінки. Гіпертекст - це звичайний текст, розмічений спеціальними керуючими конструкціями - тегами. Браузер зчитує теги і інтерпретує їх як команди форматування при поданні інформації. Теги описують структуру документа, а спеціальні теги, якоря і гіперпосилання, дозволяють встановити зв'язки між веб-сторінками та переміщатися як усередині веб-сайту, так і між сайтами.

Примітка

Т. Дж. Бернерс-Лі - «батько» Всесвітньої павутини

Сер Тімоті Джон Бернерс-Лі - британський вчений-фізик, винахідник Всесвітньої павутини (спільно з Робертом Кайо), автор URI, HTTP і HTML. Чинний глава Консорціуму Всесвітньої павутини (W3C). Автор концепції семантичної павутини і безлічі інших розробок в області інформаційних технологій. 16 липня 2004 року Королева Великобританії Єлизавета II справила Тіма Бернерса-Лі в Лицарі-Командори за «службу на благо глобального розвитку Інтернету».

компоненти WWW

Функціонування сервісу забезпечується чотирма складовими:

  • URL / URI - уніфікований спосіб адресації і ідентифікації мережевих ресурсів;
  • HTML - мова гіпертекстової розмітки веб-документів;
  • HTTP - протокол передачі гіпертексту;
  • CGI - загальний шлюзовий інтерфейс, який представляє доступ до серверних додатків.

Адресація веб-ресурсів. URL, URN, URI

Для доступу до будь-яких мережевих ресурсів необхідно знати, де вони розміщені, і як до них можна звернутися. У Всесвітній павутині для звернення до веб-документів спочатку використовується стандартизована схема адресації і ідентифікації, яка б враховувала досвід адресації і ідентифікації таких мережевих сервісів, як e-mail, telnet, ftp і т.п. - URL, Uniform Resource Locator.

URL ( RFC 1738 ) - уніфікований локатор (покажчик) ресурсів, стандартизований спосіб запису адреси ресурсу в www і мережі Інтернет. Адреса URL має гнучку і расширяемую структуру для максимально природного вказівки місцезнаходження ресурсів в мережі. Для запису адреси використовується обмежений набір символів ASCII. Загальний вигляд адреси можна змалювати таку картину:

<Схема>: // <логін>: <пароль> @ <хост>: <порт> / <повний-шлях-до-ресурсу>

де:

схема

схема звернення до ресурсу: http, ftp, gopher, mailto, news, telnet, file, man, info, whatis, ldap, wais і т.п.

Логін: Пароль

ім'я користувача та його пароль, які використовуються для доступу до ресурсу

хост

доменне ім'я хоста або його IP-адреса

порт

порт хоста для підключення

повний-шлях-до-ресурсу

уточнююча інформація про місце знаходження ресурсу (залежить від протоколу).

Приклади URL:

  1. http://example.com # Запит стартової сторінки за замовчуванням
  2. http://www.example.com/site/map.html # Запит сторінки в зазначеному каталозі
  3. http://example.com:81/script.php # Підключення на нестандартний порт
  4. http://example.org/script.php?key=value # Передача параметрів скрипту
  5. ftp: // user: [email protected] # Авторизація на ftp-сервері
  6. http://192.168.0.1/example/www # Підключення по ip-адресою
  7. file: ///srv/www/htdocs/index.html # Відкриття локального файлу
  8. gopher: //example.com/1 # Підключення до сервера gopher
  9. mailto: // user @example .org # Посилання на електронну пошту

У серпні 2002 року RFC 3305 анонсував старіння URL на користь URI (Uniform Resource Identifier), ще більш гнучкого способу адресації, що увібрав можливості як URL, так і URN (Uniform Resource Name, уніфіковане ім'я ресурсу). URI дозволяє не тільки вказувати місцезнаходження ресурсу (як URL), а й ідентифікувати його в заданому просторі імен (як URN). Якщо в URI не вказувати місцезнаходження, то з його допомогою можна описувати ресурси, які не можуть бути отримані безпосередньо з Інтернету (автомобілі, персони і т.п.). Поточна структура і синтаксис URI регулюється стандартом RFC 3986, що вийшов в січні 2005 року.

Мова гіпертекстової розмітки HTML

HTML (HyperText Markup Language <https://ru.wikipedia.org/wiki/HTML>) - стандартна мова розмітки документів у Всесвітній павутині. Більшість веб-сторінок створені за допомогою мови HTML. Мова HTML інтерпретується браузером і відображається у вигляді документа в зручній для людини формі. HTML є додатком SGML (стандартної узагальненої мови розмітки) і відповідає міжнародному стандарту ISO 8879.

HTML створювався як мова для обміну науковою і технічною документацією, придатний для використання людьми, які не є фахівцями в області верстки. Для цього він представляє невеличке (порівняно) набір структурних і семантичних елементів - тегів. За допомогою HTML можна легко створити відносно простий, але красиво оформлений документ. Спочатку мова HTML був задуманий і створений як засіб структурування та форматування документів без їх прив'язки до засобів відтворення (відображення). В ідеалі, текст з розміткою HTML повинен одноманітно відтворюватися на різному устаткуванні (монітор ПК, екран планшета, обмежений за розмірами екран мобільного телефону, медіа-проектор). Однак сучасне застосування HTML дуже далеко від його початкової задачі. Згодом основна ідея платформонезавісимость мови HTML стала жертвою комерціалізації www і потреб в мультимедійному і графічному оформленні.

протокол HTTP

HTTP ( HyperText Transfer Protocol ) - протокол передачі гіпертексту, поточна версія HTTP / 1.1 (RFC 2616). Цей протокол спочатку був призначений для обміну гіпертекстовими документами, але зараз його можливості істотно розширені в сторону передачі двійкової інформації.

HTTP - типовий клієнт-серверний протокол, обмін повідомленнями йде за схемою «запит-відповідь» у вигляді ASCII-команд. Особливістю протоколу HTTP є можливість вказати в запиті і відповіді спосіб представлення одного і того ж ресурсу за різними параметрами: формату, кодуванні, мови і т. Д. Саме завдяки можливості вказівки способу кодування повідомлення клієнт і сервер можуть обмінюватися двійковими даними, хоча даний протокол є символьно-орієнтованим.

HTTP - протокол прикладного рівня, але використовується також як «транспорт» для інших прикладних протоколів, в першу чергу, заснованих на мові XML (SOAP, XML-RPC, SiteMap, RSS і ін.).

Загальний шлюзовий інтерфейс CGI

CGI ( Common Gateway Interface ) - механізм доступу до програм на стороні веб-сервера. Специфікація CGI була розроблена для розширення можливостей сервісу www за рахунок підключення різного зовнішнього програмного забезпечення. При використанні CGI веб-сервер являє браузеру доступ до виконуваним програмам, що запускаються на його (серверної) стороні через стандартні потоки введення і виведення.

Інтерфейс CGI застосовується для створення динамічних веб-сайтів, наприклад, коли веб-сторінки формуються з результатів запиту до бази даних. Зараз популярність CGI знизилася, тому що з'явилися більш досконалі альтернативні рішення (наприклад, модульні розширення веб-серверів).

Програмне забезпечення сервісу WWW

Веб-сервери

Веб-сервер - це мережевий додаток, яке обслуговує HTTP-запити від клієнтів, зазвичай веб-браузерів. Веб-сервер приймає запити і повертає відповіді, зазвичай разом з HTML-сторінкою, зображенням, файлом, медіа-потоком або іншими даними. Веб-сервери - основа Всесвітньої павутини. З розширенням спектра мережевих сервісів веб-сервери все частіше використовуються в якості шлюзів для серверів додатків або самі представляють такі функції (наприклад, Apache Tomcat).

Створенням програмного забезпечення веб-серверів займаються багато розробників, але найбільшу популярність (за статистикою http://netcraft.com ) Мають такі програмні продукти, як Apache (Apache Software Foundation), IIS (Microsoft), Google Web Server (GWS, Google Inc.) і nginx.

Apache - безкоштовне програмне забезпечення, розповсюджується під сумісною з GPL ліцензією. Apache вже багато років є лідером по поширеності у Всесвітній павутині в силу своєї надійності, гнучкості, масштабованості і безпеки.

IIS (Internet Information Services) - пропріетарний набір серверів для декількох служб Інтернету, розроблений Майкрософт і розповсюджуваний з серверними операційними системами сімейства Windows. Основним компонентом IIS є веб-сервер, також підтримуються протоколи FTP, POP3, SMTP, NNTP.

Google Web Server (GWS) - розробка компанії Google на основі веб-сервера Apache. GWS оптимізований для виконання додатків сервісу Google Applications.

nginx [engine x] - це HTTP-сервер, поєднаний з Кешуються проксі-сервером. Розроблено І. Сисоєва для компанії Рамблер. Восени 2004 року вийшов перший публічно доступна реліз, зараз nginx використовується на 9-12% веб-серверів.

браузери

Браузер, веб-оглядач (web-browser) - клієнтську програму для доступу до веб-серверів по протоколу HTTP і перегляду веб-сторінок. Як правило браузери додатково підтримують і ряд інших протоколів (наприклад ftp, file, mms, pop3).

Перші HTTP-клієнти були консольними і працювали в текстовому режимі, дозволяючи читати гіпертекст і переміщатися по посиланнях. Зараз консольні браузери (такі, як lynx, w3m або links) практично не використовуються рядовими відвідувачами веб-сайтів. Проте такі браузери вельми корисні для веб-розробників, так як дозволяють «побачити» веб-сторінку «очима» пошукового робота.

Історично першим браузером в сучасному розумінні (тобто з графічним інтерфейсом і т.д.) була програма NCSA Mosaic, розроблена Марком Андерісеном і Еріком Біна. Mosaic мав досить обмежені можливості, але його відкритий вихідний код став основою для багатьох наступних розробок.

Існує велика кількість програм-браузерів, але найбільшою популярністю користуються такі:

Internet Explorer (IE) - браузер, розроблений компанією Майкрософт і тісно інтегрований c ОС Windows. Платформозавісім (підтримка сторонніх ОС припинена починаючи з версії 5). Єдиний браузер, безпосередньо підтримує технологію ActiveX. Чи не повністю сумісний зі стандартами W3C, в зв'язку з чим вимагає додаткових витрат з веб-розробників.

Firefox - вільний багатоплатформовий браузер, що розробляється Mozilla Foundation і поширюваний під потрійний ліцензією GPL / LGPL / MPL. В основі браузера - движок Gekko, який спочатку створювався для Netscape Communicator. Однак, замість того, щоб надати всі можливості движка в стандартному постачанні, Firefox реалізує лише основну його функціональність, надаючи користувачам можливість модифікувати браузер відповідно до їх вимог через підтримку розширень (add-ons), тим оформлення і плагінів.

Safari - пропріетарний браузер, розроблений корпорацією Apple і входить до складу операційної системи Mac OS X. Безкоштовно розповсюджується для операційних систем сімейства Microsoft Windows. У браузері використовується унікальний по продуктивності інтерпретатор JavaScript і ще ряд цікавих для користувача рішень, які відсутні або не розвинені в інших браузерах.

Chrome - багатоплатформовий браузер з відкритим вихідним кодом, що розробляється компанією Google. Перша стабільна версія вийшла 11 грудня 2008 року. На відміну від багатьох інших браузерів, в Chrome кожна вкладка є окремим процесом. У разі якщо процес обробки вмісту вкладки зависне, його можна буде завершити без ризику втрати даних інших вкладок. Ще одна особливість - інтелектуальна адресний рядок (Omnibox). До можливості автозаповнення вона додає пошукові функції з урахуванням популярності сайту, релевантності та користувацьких переваг (історії переходів).

Opera - багатоплатформовий багатофункціональний веб-браузер, вперше представлений в 1994 році групою дослідників з норвезької компанії Telenor. Подальша розробка ведеться Opera Software ASA. Цей браузер має високу швидкість роботи і сумісний з основними стандартами. Відмінними рисами Opera довгий час були багатосторінковий інтерфейс і можливість масштабування веб-сторінок цілком. На різних етапах розвитку в Opera були інтегровані можливості поштового / новинного клієнта, адресної книги, клієнта мережі BitTorrent, агрегатора RSS, клієнта IRC, менеджера закачувань, WAP-браузера, а також підтримка віджетів - графічних модулів, які працюють поза вікна браузера.

Роботи- «павуки»

Поряд з браузерами, орієнтованими на користувача, існують і спеціалізовані клієнти-роботи ( «павуки», «боти»), що підключаються до веб-серверів і виконують різні завдання автоматичної обробки гіпертекстової інформації. Сюди відносяться, в першу чергу, роботи пошукових систем, таких як google.com, yandex.ru, yahoo.com і т.п., що виконують обхід веб-сайтів для подальшої побудови пошукового індексу.

Еволюція Веб сайтів

Web 1.0 - до .com bubble. Статичне утримання сторінок, аскетичний дизайн, чати, форуми, гостьові книги.

Web 2.0 - нове покоління сайтів (після 2001) User-generated content. Надання і споживання API. RSS. Оновлення сторінок «на льоту» (ajax).

Web 3.0 - ??? Community-generated content. Семантична павутина. Унікальні ідентифікатори і мікроформати.

Php?