Фреймуърк системи за уеб...

16
Фреймуърк системи за уеб програмиране Лекция 1: Уеб Сървъри

Upload: others

Post on 13-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Фреймуърк системи за уеб програмиране

Лекция 1:Уеб Сървъри

Page 2: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Уеб Сървъри: Мрежата

Какво е Уеб? OSI модел TCP/IP / UDP DNS HTTP / HTTPS

Какво е Сървър? Сокети (sockets)

Listening Established

Какво е Уеб Сървър? HTTP Headers

Request Fields Response Fields

Примерна операция – илюстрирана Примерна операция – реални пакети

Page 3: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Мрежата: OSI модел

Page 4: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Мрежата: TCP/IP / UDP протоколи в OSI модела

Page 5: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Мрежата: DNS и процеса на запитване за адрес

Page 6: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

HTTP Слуша на порт 80 Некриптирани

данни

HTTPS Слуша на порт 443 Ползва TLS, SSL или

друг протокол за криптиране

HTTP / HTTPS Колекция от хедъри Стандартизирана

комуникация(https://datatracker.ietf.org/wg/httpbis/charter/)

Мрежата: HTTP / HTTPS

Page 7: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Мрежата: Сокети (sockets)

Софтуерна абстракция за представяне на двата края (терминала) за връзка между машините Позволява няколко приложения на една машина да споделят един и същи

IP адрес Listening (слушащ) сокет – двойката

[ Destination IP, Destination Порт ],представляваща отворен край (терминал) на връзка, към който клиенти могат да се свържат. Binding – резервиране / асоцииране на слушащ сокет с определен сървър /

приложение Съществуват и различни видове сокети и/или механизми за слушане / свързване

(Unix Sockets / IPC, Named Pipes, RPC, и др.)

Established (установени / свързани) сокети – четворката [ Source IP, Source Порт, Destination IP, Destination Порт ] представляваща установена двупосочна връзка между клиент и сървър.

Page 8: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Мрежата: Уеб Сървър - Сокети (sockets)

Page 9: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Мрежата: Уеб Сървър – HTTP Message

Request Message Method Uri Version Headers (Message Body)

Response Message Version Status Code Reason Phrase Headers (Message Body)

Page 10: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Мрежата: Уеб Сървър – HTTP Headers

Request Fields Host User-Agent Cookie …

Response Fields Date Content-Type Content-Length Last-Modified Expires …

Page 11: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Мрежата: Примерна операция – илюстрирана

Page 12: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Мрежата: Примерна операция – илюстрирана

Give me mypage.com

Read mypage.com

DNS

HTTP

Page 13: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Уеб Сървъри: Популярни уеб сървъри

Уеб Сървъри: Apache Microsoft IIS

(Internet Information Services) nginx Google GWS

(използван вътрешно от Google)

Специализирани(приложни / application)сървъри: Apache Tomcat (Java) Jetty (Java) Node.js (JavaScript)

Само-хостващи се услуги(Self-hosted services) ASP.NET Web API Self Host GO – вграден Self Host Java 6 Web API Self Host

Page 14: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Уеб Сървъри: Популярни сървъри – сравнение

Server CGI FCGI SCGI WSGIJava

SSI ISAPI SSJSAdministration

Servlets console

Apache HTTP Server Yes Yes Yes Yes No Yes Yes Unknown Yes

Apache Tomcat Yes No Unknown No Yes Yes No Unknown Yes

Internet Information Services Yes Yes Yes No No Yes Yes Yes Yes

Jetty Yes Unknown Unknown No Yes Unknown Unknown Yes Unknown

lighttpd Yes Yes Yes No No Yes No Unknown No

nginx No Yes Yes Yes No Yes No Unknown Yes

Всички от изброените поддържат: Basic access authentication Digest access authentication SSL/TSL криптиране през HTTPS Виртуални хостове (virtual hosts)

Page 15: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Уеб Сървъри: Apache

Обща схема на работа на Apache 2

Page 16: Фреймуърк системи за уеб програмиранеedesign-bg.com/courses/frameworks-2017-18/Lecture_1.pdfIP адрес Listening (слушащ) сокет – двойката

Как работи уеб - Сървър