Upload
-
View
25
Download
0
Embed Size (px)
DESCRIPTION
Web comunication
Citation preview
Комуникација на Веб
Интернет Технологии 2015
д-р Гоце Арменски и д-р Магдалена Костоска
Содржина
Комуникација: Клиент – Сервер
Комуникација: Прелистувач – Сервер
Протоколи
Клиенти и сервери
Клиентска програма Се извршува на еден
краен домаќин (host)
Побарува услуга (сервис)
Пр., Веб прелистувач
Серверска програма Се извршува на еден
краен домаќин (host)
Овозможува услуга
Пр., Веб сервер
“Site under construction” Извор : Jennifer Rexford - Networked Applications: Sockets
Клиентите не се задолжително луѓе
Пример: Web crawler (или spider) Автоматизирана клиентска програма
Се обидува да открие и download многу веб страни
Формира основа за пребарувачи како Google
Spider клиент Почнува со основна листа на популарни ве страници
Врши download на веб страниците
Ги парсира HTML документите за да извлече линкови
И овие страници ги download-ра исто
И повторно, и повторно, и повторно…
Извор : Jennifer Rexford - Networked Applications: Sockets
Клиент - сервер комуникација
Клиентот е “некогаш on”
Иницира барање до серверот кога е заинтересиран
Пр. Веб прелистувач
Не комуницира директно со други клиенти
Треба да ја знае серверската адреса
Серверот е “секогаш on”
Добива побарувања за сервиси од многу клиенти
Пр. Веб сервер за www.finki.ukim.mk
Не иницира контакт со клиенти
Треба да има фиксна позната адреса
Извор : Jennifer Rexford - Networked Applications: Sockets
Peer-to-Peer Комуникација
Нема сервер кој е постојано достапен во оваа комуникација Хостовите може да доаѓаат и одат и да менуваат
адреси Хостовите може да имаат различни адреси секогаш
Пример: peer-to-peer споделување документи (како torrent) Било кој хост може да побарува или доставува
документи, пребарува и најде локација на документ...
Скалабилност со вклучување на милиони хостови Секој peer може да се однесува и како сервер и како
клиент
Извор : Jennifer Rexford - Networked Applications: Sockets
Клиент - сервер vs Peer-to-peer
Клиент - сервер Peer-to-peer
Извор слики: http://www.howtogeek.com/141257/htg-explains-how-does-bittorrent-work/
Достава на податоци: поделба на труд
Мрежа Доставува податочни пакети до дестинацискиот хост
Се базира на дестинациска IP адреса
Оперативен систем Доставува податоци до дестинацискиот сокет
Се базира на дестинациски број на порта
Апликација Чита и запишува податоци од/до сокет
Интерпретира податоци (Пр. Рендерира веб страница)
Извор : Jennifer Rexford - Networked Applications: Sockets
Сокет: Точка на комуникација
Праќа пораки од еден процес на друг
Пораките мора да поминат низ мрежата
Процесите праќаат и примаат преку “сокет”
Претставуваат точка за влез/излез
Сокет како API
Поддржуваат креирање на мрежни апликации
socket socket
User process User process
Operating
System Operating
System
Извор : Jennifer Rexford - Networked Applications: Sockets
Идентификација на приемниот процес
Процесот кој праќа мора да го идентификува примачот
Компјутерот кој ќе прима податоци
Специфичниот сокет на тој компјутер
Приемен хост
Дестинациската адреса го идентификува приемниот хост
IP адреса (32 бита)
Приемен сокет
Еден хост може да извршува повеќе различни процеси
Дестинациската порта го идентификува сокетот
Број на порта (16 бита)
Извор : Jennifer Rexford - Networked Applications: Sockets
Употреба на порти за идентификација на сервиси
Веб сервер
(port 80)
Client host
Server host 128.2.194.242
Echo сервер
(port 7)
Service request for
128.2.194.242:80
(i.e., the Web server)
Веб сервер
(port 80)
Echo сервер
(port 7)
Service request for
128.2.194.242:7
(i.e., the echo server)
OS
OS
Клиент
Клиент
Извор : Jennifer Rexford - Networked Applications: Sockets
Кој број на порта да се употреби
Популарните апликации имаат добро познати порти
Пр. порта 80 за веб и порта 25 за e-mail
Погледнете http://www.iana.org/assignments/port-numbers
Добро- познати vs. краткотрајни порти
Серверите имаат познати порти
Меѓу 0 и 1023
Клиентот бира неупотребена привремена порта
Меѓу 1024 и 65535
Идентификација на сообраќај меѓу два хоста
Две IP адреси и два броја на порти
Транспортен протокол (Пр. TCP или UDP)
Извор : Jennifer Rexford - Networked Applications: Sockets
Броевите на порти за единствени за секој хост
Бројот на порта го идентификува сокетот
Оперативниот систем (ОС) обезбедува уникатност
ОС внимава кои порти се во употреба
Не дозволува две програми да употребуваат иста порта
Пример: Два веб сервера на иста машина
Не може и двата да ја користат портата “80”, стандардната порта
Еден од нив мора да користи нестандардна порта
Пр. http://www.finki.ukim.mk:8080
Извор : Jennifer Rexford - Networked Applications: Sockets
Типична клиентска програма
Подготовка за комуникација Креирање на сокет
Одредување на серверската адреса и порта
Иницирање конекција кон серверот
Размена на податоци со сервер Запишува податоци на сокетот
Чита податоци од сокетот
Работи со податоците (Пр. Рендерирање веб страна)
Го затвора сокетот
Извор : Jennifer Rexford - Networked Applications: Sockets
Серверите се разликуваат од клиентите
Пасивно отворени Подготвени да прифатат конекција
… но не ја поставуваат
… додека не се побарува од клиент
Слушаат од повеќе клиенти Дозволуваат листа на чекање на клиенти
... Во случај повеќе да сакаат комуникација истовремено
Креираат сокет за секој клиент При прифаќање на нов клиент
… креираат нов сокет за комуникација
Извор : Jennifer Rexford - Networked Applications: Sockets
Типична серверска програма Подготовка за комуникација
Креираат сокет Асоцираат локална адреса и порта со сокетот
Чека на комуникација од клиент (passive open) Се иницира колку клиенти за чекање ќе се дозволат Прифаќаат конекции кои доаѓаат од клиент
Разменува податоци со клиентот преку нов сокет Чита податоци од сокетот Се справува со побарувања (Пр. Се зема документ) Запишува податоци на сокетот Го затвора сокетот
Се повторува истото со следното побарување за конекција
Извор : Jennifer Rexford - Networked Applications: Sockets
Целосна слика
socket()
bind()
listen()
accept()
read()
write()
Сервер
block
process request
Клиент
socket()
connect()
write()
read()
Извор : Jennifer Rexford - Networked Applications: Sockets
Клиент: Дознавање на серверска адреса/порта
Серверот се познава по име и тип на сервис Пр. “www.finki.ukim.mk” и“http”
Се преведува во IP адреса и порта E.g., “194.149.137.145” и “80”
Превод на серверско име во адреса struct hostent *gethostbyname(char *name)
Аргументи: име на хост (Пр. “www.finki.ukim.mk”)
Се враќа структура која ја вклучува адресата на хостот
Идентификација на портата на сервисот struct servent *getservbyname(char *name, char *proto)
Аргументи: тип на сервис (Пр. “ftp”) и протокол (Пр. “tcp”)
Извор : Jennifer Rexford - Networked Applications: Sockets
Веб: URL, HTML и HTTP
Uniform Resource Locator (URL) Покажувач кон “црна кутија” која прифаќа побарувања
(requests)
Форматиран стринг со протокол (Пр. http), серверско име (Пр. www.finki.ukim.mk) и име на ресурс (finki-logo-9.png)
HyperText Markup Language (HTML) Презентација на hyptertext документи во ASCII формат
Форматиран текст, слики, вградени линкови
Се интерпретира од веб прелистувачи
HyperText Transfer Protocol (HTTP) Клиент-сервер протокол за трансфер на ресурси
Клиентот праќа побаруваење (request) и серверот враќа одговор (response)
Извор : Jennifer Rexford - Networked Applications: Sockets
HTTP URL
Веб прелистувачот го користи авторитетот (authority) за да се поврзе преку TCP
Го побарува ресурсот (Request-URI) – “/” се користи за патеки
Фрагментот не се праќа до сервер (се користи за scroll во прелистувачот на клиентот)
http://www.example.org:56789/a/b/c.txt?t=win&s=chess#para5
host (FQDN) port
authority
path query fragment
Request-URI
Извор : Guy-Vincent Jourdan :: CSI 3140
Web комуникација
Web апликациите имаат две одделни компоненти
Client – познат како front-end интерфејс
Прикажува кориснички интерфејс
Овозможува влез на податоци од корисниците
Праќа податоци кон серверот за обработка
Server – познат како back-end интерфејс
Враќа одговор на клиентот за страните кои тој ги побарал
Страните ги враќа како HTML со инструкции како да се генерира кориничкиот интерфејс (приказот на страната)
Комун.: прелистувач - сервер
Се користи HTTP протокол
Се праќа GET request до сервер
Серверот праќа одговор назад до прелистувачот
При submit се праќа POST назад кон серверот
Серверот праќа одговор назад до прелистувачот
Server-Side Programming
CGI > ISAPI > ASP > ASP.NET > …
Client-Side Programming
JAVA, JavaScript, DHTML
Улогата на Серверот
Веб сервери
Основна функционалност: Прима HTTP барање (request) преку TCP
Го мапира Host header-от со соодветен виртуелен хост (еден од многуте хостови кои ја делат истата IP адреса)
Го мапира Request-URI се соодветен ресурс асоциран со виртуелниот хост Документ: Се враќа документот во HTTP одговор (response)
Програма: Се извршува програмата и се враќа излезот во HTTP одговор (response)
Го мапира типот на ресурсот во соодветен MIME тип и го употребува за да постави соодвете Content-Type header во HTTP одговорот (response)
Креира лог со информации за побарувањето и одговорот
Верификација дека барањето е правилно структурирано
заштита од клиенти кои постојано праќаат лошо структурирани барања
Идентификација на самиот себе
доколку серверот користи SSL сертификат, мора истиот да се прифати
Идентификација на корисник
доколку страната побарува идентификација на корисник, се проверува дали таков корисник постои
Авторизација на корисникот
доколку постои тој корисник се проверува дали тој има привилегии за пристап до бараната страна
Операции кои ги извршува серверот
Утврдување како да се справи со барањето дали се работи за страна со статична содржина (HTML) или
некоја ASP.NET страна
Справување со грешки доколку не може да одговори на барањето серверот генерира
информации за грешката
Кеширање на излезот за побрз одговор при следното повикување на страната
Компресирање на излезот за редуцирање на пропусниот опсег
Логови зачувување на логови
Операции кои ги извршува серверот #2
Улогата на прелистувачот Праќа барања до web серверот
Се користи HTTP протокол за конектирање на серверот и барање на страна од него (Convert web addresses (URL’s) to HTTP requests)
Идентификација на серверот Ако серверот поседува SSL сертификат тогаш се користи HTTPS протокол за
комуникација со него
Процесирање на одговорот Доколку страната постои се прикажува кориснички интерфејс генериран од HTML
кодот кој го враќа серверот Доколку не постои се враќа порака за грешка или се прави редиректирање кон
друга страна
Приказ на HTML објекти Рендерирање на сите објекти кои се наоѓаат во HTML кодот вратен од серверот
Извршување на клиентски скрипти JavaScript, AJAX скрипти кои се извршуваат на клиентска страна без да повторно
вчитување на страната
Улогата на Hypertext Transfer Protocol (HTTP)
Текст базиран комуникациски протокол
Порти:
80 и 443 за HTTPS
Праќање request од прелистувачот кон серверот:
GET /default.aspx HTTP/1.1
Host: www.finki.ukim.mk
HTTP e stateless протокол (т.е. Нема состојби):
Протоколот не побарува серверот да памети било што за клинетот меѓу две негови побарувања.
HTTP
Стандардно се имплементира со TCP конекција
Може да се употребува Telnet протоколот за да се симулира побарување (request) од клиент и да се вид одговорот на серверот
Извор : Guy-Vincent Jourdan :: CSI 3140
$ telnet www.example.org 80
Trying 192.0.34.166...
Connected to www.example.com
(192.0.34.166).
Escape character is ’^]’.
GET / HTTP/1.1
Host: www.example.org
HTTP/1.1 200 OK
Date: Thu, 09 Oct 2003 20:30:49 GMT
…
{ Праќање на
Побарување
(request)
{ Примање на
одговор
(response)
Поврзување {
Пример клиент: Веб прелистувач (Web Browser)
Генерира HTTP барања
Прикажува одговор
Парсира HTML и рендерира веб страница
Повикува помошни апликации (Пр. Acrobat, PowerPoint)
Одржува кеш
Зачувува објекти кои се неодамна видени
Проверува дали кешираните објекти се “свежи”
Извор : Guy-Vincent Jourdan :: CSI 3140
Веб сервер vs Веб сајт
Веб сајт: колекција од веб страници асоцирани со соодветно име на хост
Веб сервер: програма која одговара на клиентските побарувања за веб ресурси
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Побарување (Request)
Структура на побарување:
Почетна линија (start line)
Полиња на заглавје (header field(s))
Празна линија
Опционално тело
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Побарување (Request)
Структура на побарување:
Почетна линија (start line)
Полиња на заглавје (header field(s))
Празна линија
Опционално тело
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Побарување (Request)
Почетна линија (start line)
Пример: GET / HTTP/1.1
Три дела одделени со празно место:
HTTP метод на барање (request method)
Request-URI (Uniform Resource Identifier)
HTTP верзија
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Побарување (Request)
Почетна линија (start line)
Пример: GET / HTTP/1.1
Три дела одделени со празно место:
HTTP метод на барање (request method)
Request-URI
HTTP верзија
Извор : Guy-Vincent Jourdan :: CSI 3140
Hypertext Transfer Protocol (HTTP) Верзии
• HTTP/1.0 allows only connectionless message passing each request/response requires a new connection to download a page with images requires multiple
connections can overload the server, require lots of overhead
• HTTP/1.1 provides persistent connection by default (HTTP keep-alive) once client & server connect, remains open until told to
close it (or timeout) reduces number of connections, saves overhead
client can send multiple requests without waiting for responses
e.g., can request all images in a page at once
Hypertext Transfer Protocol (HTTP) Верзии
• HTTP/2.0 Based on SPDY - open networking protocol developed
primarily at Google for transporting web content Decrease latency to improve page load speed in web
browsers
• HTTP/1.1 vs HTTP/2.0 HTTP/2 leaves most of HTTP 1.1's high level syntax, such as
methods, status codes, header fields, and URIs, the same The element that is modified is how the data is framed
and transported between the client and the server Additional performance improvements of HTTP/2 come
from multiplexing of requests and responses to avoid the head-of-line blocking problem in HTTP 1, header compression, and prioritization of requests
HTTP Побарување (Request)
Почетна линија (start line)
Пример: GET / HTTP/1.1
Три дела одделени со празно место:
HTTP метод на барање (request method)
Request-URI
HTTP верзија
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Побарување (Request)
Uniform Resource Identifier (URI)
Синтакса: scheme : scheme-depend-part
Пр. Во http://www.example.com/ scheme е http
Request-URI - делот кој следи по името на хостот
Пр. / е Request-URI делот од http://www.example.com/
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Побарување (Request)
Почетна линија (start line)
Пример: GET / HTTP/1.1
Три дела одделени со празно место:
HTTP метод на барање (request method)
Request-URI
HTTP верзија
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP методи
OPTIONS – побарува листа од сите овозможени методи
GET – зема URL од сервер
HEAD – зема meta информации
POST – праќа податоци до серверот за процесирање
PUT – директно креирање на ресурс на сервер (пр. Зачувување на некој документ)
DELETE – бришење на ресурс од сервер
TRACE – за тестирање и пронаоѓање на грешки
CONNECT – кога се користи proxy
DEBUG – за дебагирање во ASP.NET
GET метод
GET /getCustomer.aspx?id=123&color=blue HTTP/1.1
Host: www.customerservice.com
Недостатоци на GET методот:
Цела адреса се гледа во address bar на прелистувачот
Ограничена е должината на query string (1024 карактери на IIS)
GET пример
Интернет Технологии 2012 м-р
Владимир Здравески
bash-3.1$ telnet www.csc.liv.ac.uk 80
Trying 10.128.0.3...
Connected to www.csc.liv.ac.uk (10.128.0.3).
Escape character is '^]'.
GET /~martin/index.html HTTP/1.1
Host: www.csc.liv.ac.uk
HTTP/1.1 200 OK
Date: Mon, 08 Oct 2007 10:01:15 GMT
Server: Apache/2.0.58 HP-UX_Apache-
based_Web_Server (Unix) mod_perl/1.99_16
Perl/v5.8.7 DAV/2 PHP/5.0.4
Last-Modified: Mon, 01 Oct 2007 14:55:16 GMT
ETag: "ec3f-1122-9fd83d00"
Accept-Ranges: bytes
Content-Length: 4386
Content-Type: text/html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN“
"http://www.w3.org/TR/xhtml11/DTD/xhtml1-
strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en" lang="en">
<head>
. . .
. . .
</head>
<body>
. . .
. . .
</body>
</html>
Connection closed by foreign host.
server response has assorted
header information, followed
by the page
POST метод
POST /getCustomer HTTP/1.1
Host: www.customerservice.com
Id=123&color=blue
Проблем ако праќаме големо количество на податоци
Во ASP.NET – IsPostBack се користи за да се одреди дали податоци се пратени кон серверот или страната е едноставно повикана без праќање на дополнителни податоци кон серверот
HTTP Побарување (Request)
Структура на побарување:
Почетна линија (start line)
Полиња на заглавје (header field(s))
Празна линија
Опционално тело
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Побарување (Request)
Структура на поле на заглавје (header field) :
field name : field value
Синтакса
Field name не е case sensitive
Field value може да содржи повеќе последователни линии со празни места
Field values може да содржи MIME типови, вредности (quality values) и wildcard карактери (*’s)
Извор : Guy-Vincent Jourdan :: CSI 3140
Multipurpose Internet Mail Extensions (MIME)
Конвенција за спецификација на типови на содржина на порака
Во HTTP често се употребува за да се специфицира тип на содржина во телото на одговорот (response)
Синтакса на MIME тип на содржина:
top-level type / subtype
Примери: text/html, image/jpeg
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP вредности (quality values) и wildcards
Пример за поле на заглавје со вредности (quality values): accept:
text/xml,text/html;q=0.9,
text/plain;q=0.8, image/jpeg,
image/gif;q=0.2,*/*;q=0.1
Вредностите се применуваат на сите претходни елементи
Повисока вредности, повисоко претпочитување
Забележете употреба на wildcards за да се специфицира квалитет 0.1 за било кој MIME тип кој не е специфициран претходно
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Побарување (Request)
Општи полиња на заглавје (header fields): Host: името на хостот од URL (задолжително)
User-Agent: тип на прелистувач кој го праќа побарувањето (request)
Accept: MIME типови на прифатливи документи
Connection: вредноста close му кажува на серверот да ја затвори конекцијата после еден request/response
Content-Type: MIME тип на (POST) тело, често application/x-www-form-urlencoded
Content-Length: број на битови во телото
Referer: URL на документот кој содржи линк кој го дава URIто за HTTP барањето (request)
Извор : Guy-Vincent Jourdan :: CSI 3140
Одговор на серверот
Серверот го процесира барањето и враќа одговор на прелистувачот
ASP.NET сите информации ги пакува во Response object
Враќање response од серверот кон прелистувачот:
HTTP/1.1 200 OK
Server: Microsoft-IIS/6.0
Content-Type: text/html
Content-Length: 38
<html><body>Hello, World.</body></html>
HTTP Одговор (Response)
Структура на одговорот:
Линија со статус (status line)
Полиња на заглавје (header field(s))
Празна линија
Опционално тело
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Одговор (Response)
Линија со статус (status line)
Пример: HTTP/1.1 200 OK
Три дела одделени со празно место:
HTTP верзија
Статусен код (status code)
Описна причина (наменета за читање од страна на човек)
Извор : Guy-Vincent Jourdan :: CSI 3140
Статус кодови и причини 1xx – информациски (пр. Барањето е примено и серверот
продолжува со процесот) Reason: 100 CONTINUE
2xx – успешност (пр. Примено, прифатено и разбрано) Reason: 200 OK
3xx – редиректирање (пр. Страната е поместена треба да се редиректира кон друга страна) Reason: 302 FOUND
4xx – Клиентска грешка (пр. барањето има синтаксна грешка или серверот незнае како да одговори) Reason: 400 Bad Request
5xx- Серверска грешка (серверот неможе да го исполни барањето кое е валидно) Reason: 500 Internal Server Error
Статус кодови
HTTP Одговор (Response)
Структура на одговорот:
Линија со статус (status line)
Полиња на заглавје (header field(s))
Празна линија
Опционално тело
Извор : Guy-Vincent Jourdan :: CSI 3140
HTTP Одговор (Response)
Општи полиња на заглавје (header fields): Connection, Content-Type, Content-Length
Date: датум и време кога одговорот е креиран (задолжително)
Location: алтернативно URI ако статусот е пренасочување (redirection)
Last-Modified: датум и време кога побаруваниот ресурс е последно менуван од серверот
Expires: датум и време после кои клиентската копија на ресурсот ќе биде застарена
ETag: единствен идентификатор за верзијата на побараниот ресурс (се менува ако се промени/измени ресурсот)
Извор : Guy-Vincent Jourdan :: CSI 3140
Пример 1
Trying 10.128.0.3...
Connected to www.csc.liv.ac.uk
(10.128.0.3).
Escape character is '^]'.
GET /~martin/ HTTP/1.1
Host: www.csc.liv.ac.uk
if a directory is specified, will
look for a file named index.html
HTTP/1.1 200 OK
Date: Mon, 08 Oct 2007 10:18:00 GMT
Server: Apache/2.0.58 HP-UX_Apache-
based_Web_Server (Unix) mod_perl/1.99_16
Perl/v5.8.7 DAV/2 PHP/5.0.4
Last-Modified: Mon, 01 Oct 2007 14:55:16 GMT
ETag: "ec3f-1122-9fd83d00"
Accept-Ranges: bytes
Content-Length: 4386
Content-Type: text/html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml1-
strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en" lang="en">
<head>
<title> Russell Martin's Home Page </title>
. . .
</head>
<body>
. . .
</body>
</html>
Connection closed by foreign host.
Пример 2
bash-3.1$ telnet www.csc.liv.ac.uk 80 Trying 10.128.0.3... Connected to www.csc.liv.ac.uk
(10.128.0.3). Escape character is '^]'. GET /~martin/foo.html HTTP/1.1 Host: www.csc.liv.ac.uk
HTTP/1.1 404 Not Found
Date: Mon, 08 Oct 2007 10:10:35 GMT
Server: Apache/2.0.58 HP-UX_Apache-
based_Web_Server (Unix) mod_perl/1.99_16
Perl/v5.8.7 DAV/2 PHP/5.0.4
Accept-Ranges: bytes
Transfer-Encoding: chunked
Content-Type: text/html
<html>
<head>
<title>404 Not Found</title>
<link rel="stylesheet" href="./fonts.css"
type="text/css">
</head>
<body>
. . .
<td id="main_content">
<div id="topmargin"><a name="skipnav"
tabindex="1"></a></div>
<!-- Beginning of main page content -->
<h1>Page Not Found</h1>
<p class="text">The requested URL
was not found on this server.</P>
. . .
</html>
Connection closed by foreign host.
if file not found, response
includes 404 status code
and generic error page
Безбедни сервери
Бидејќи HTTP патуваат низ јавни мрежи, приватните информации (како број на кредитни картички) треба да бидат криптирани за да се спречи прислушување
https URL шемата му кажува на прелистувачот да користи енкрипција
Вообичаени стандарди за енкрипција: Secure Socket Layer (SSL)
Transport Layer Security (TLS)
Извор : Guy-Vincent Jourdan :: CSI 3140
Безбедни сервери
Browser Web
Server
I’d like to talk securely to you (over port 443)
Here’s my certificate and encryption data
Here’s an encrypted HTTP request
Here’s an encrypted HTTP response
Here’s an encrypted HTTP request
Here’s an encrypted HTTP response
TLS/
SSL
TLS/
SSL
HTTP
Requests
HTTP
Responses
HTTP
Requests
HTTP
Responses
Извор : Guy-Vincent Jourdan :: CSI 3140
Кеширање • Прелистувачите кешираат страници за да намалат
комуникација со сервер (т.е. download) Одржуваат привремен склад (кеш) за посетените страници
Кога се побарува страна се проверува дали е во кеш
Ако не е во кеш, се издава GET барање
• Кога пристига пораката страната се прикажува и се зачувува во кеш (заедно со заглавјето)
Ако е веќе во кеш се праќа GET барање со If-Modified-Since заглавје со податоци од зачуваната страна • Кога пристига пораката ако е со статус 200 се се прикажува и се
зачувува во кеш , ако е со статус 304 се прикажува зачуваната страна од кеш
Клиентско кеширање
Browser Web
Server
1. HTTP request for image
2. HTTP response containing image
Client Server
Cache
3. Store image
Извор : Guy-Vincent Jourdan :: CSI 3140
Клиентско кеширање
Browser Web
Server
Client Server
Cache
I need that
image
again…
Извор : Guy-Vincent Jourdan :: CSI 3140
Клиентско кеширање
Browser Web
Server
Client Server
Cache
I need that
image
again…
HTTP request for image
HTTP response containing image
This…
Извор : Guy-Vincent Jourdan :: CSI 3140
Клиентско кеширање
Browser Web
Server
Client Server
Cache
I need that
image
again…
Get
image
… or this
Извор : Guy-Vincent Jourdan :: CSI 3140
Клиентско кеширање
Предности на кеш
Многу побрз HTTP request/response
Намалена мрежна комуникација
Помало оптоварување на сервер
Недостатоци на кеш
Кешираната копија на ресурс мое да биде невалидна (неконзистентна со таа на серверот)
Извор : Guy-Vincent Jourdan :: CSI 3140
Прашања?