• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
5. HTTP и приятели
 

5. HTTP и приятели

on

  • 1,521 views

 

Statistics

Views

Total Views
1,521
Views on SlideShare
1,521
Embed Views
0

Actions

Likes
0
Downloads
137
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    5. HTTP и приятели 5. HTTP и приятели Presentation Transcript

    • HTTP и приятели HTTP/1.1 200 OK Стефан: Кънев Николай: Бачийски Кога: 22.10.2008
    • защо изглеждам сънен
    • днес ще разберат как от това се получава http://fmi.rails-bg.net/topics
    • това (с готин transition)
    • http:// първият компонент
    • Request
    • Response
    • http://fmi.rails-bg.net/topics fmi.rails-bg.net Пенчо TCP връзка към fmi.rails-bg.net на порт 80
    • nb@creep:~$ wget -S http://fmi.rails-bg/net/topics nb@creep:~$ wget -S http://fmi.rails-bg/net/topics --2008-10-22 06:56:15-- http://fmi.rails-bg/net/topics --2008-10-22 06:56:15-- http://fmi.rails-bg/net/topics Resolving fmi.rails-bg... ^C Resolving fmi.rails-bg... ^C nb@creep:~$ wget -S http://fmi.rails-bg.net/topics nb@creep:~$ wget -S http://fmi.rails-bg.net/topics --2008-10-22 06:56:27-- http://fmi.rails-bg.net/topics --2008-10-22 06:56:27-- http://fmi.rails-bg.net/topics Resolving fmi.rails-bg.net... 78.83.99.48 Resolving fmi.rails-bg.net... 78.83.99.48 Connecting to fmi.rails-bg.net|78.83.99.48|:80... connected. Connecting to fmi.rails-bg.net|78.83.99.48|:80... connected. HTTP request sent, awaiting response... HTTP request sent, awaiting response... HTTP/1.1 200 OK HTTP/1.1 200 OK Date: Wed, 22 Oct 2008 03:56:28 GMT Date: Wed, 22 Oct 2008 03:56:28 GMT Server: Mongrel 1.1.5 Server: Mongrel 1.1.5 Status: 200 OK Status: 200 OK ETag: quot;d442009ec5c720c14ceb0d2be6e4ccf8quot; ETag: quot;d442009ec5c720c14ceb0d2be6e4ccf8quot; X-Runtime: 0.04557 X-Runtime: 0.04557 Content-Type: text/html; charset=utf-8 Content-Type: text/html; charset=utf-8 Content-Length: 5048 Content-Length: 5048 Cache-Control: private, max-age=0, must-revalidate Cache-Control: private, max-age=0, must-revalidate Set-Cookie: _trane_session=ee47058b784246a19b9e0efc6762fc9d; path=/ Set-Cookie: _trane_session=ee47058b784246a19b9e0efc6762fc9d; path=/ Via: 1.0 fmi.rails-bg.net Via: 1.0 fmi.rails-bg.net Keep-Alive: timeout=15, max=100 текстов Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Connection: Keep-Alive nb@creep:~$ wget -S http://fmi.rails-bg/net/topics nb@creep:~$ wget -S http://fmi.rails-bg/net/topics --2008-10-22 06:56:15-- http://fmi.rails-bg/net/topics --2008-10-22 06:56:15-- http://fmi.rails-bg/net/topics Resolving fmi.rails-bg... ^C Resolving fmi.rails-bg... ^C nb@creep:~$ wget -S http://fmi.rails-bg.net/topics nb@creep:~$ wget -S http://fmi.rails-bg.net/topics --2008-10-22 06:56:27-- http://fmi.rails-bg.net/topics --2008-10-22 06:56:27-- http://fmi.rails-bg.net/topics Resolving fmi.rails-bg.net... 78.83.99.48 Resolving fmi.rails-bg.net... 78.83.99.48 Connecting to fmi.rails-bg.net|78.83.99.48|:80... connected. Connecting to fmi.rails-bg.net|78.83.99.48|:80... connected. HTTP request sent, awaiting response... HTTP request sent, awaiting response... HTTP/1.1 200 OK HTTP/1.1 200 OK Date: Wed, 22 Oct 2008 03:56:28 GMT Date: Wed, 22 Oct 2008 03:56:28 GMT Server: Mongrel 1.1.5 Server: Mongrel 1.1.5 Status: 200 OK Status: 200 OK ETag: quot;d442009ec5c720c14ceb0d2be6e4ccf8quot; ETag: quot;d442009ec5c720c14ceb0d2be6e4ccf8quot; X-Runtime: 0.04557 X-Runtime: 0.04557 Content-Type: text/html; charset=utf-8 Content-Type: text/html; charset=utf-8 Content-Length: 5048 Content-Length: 5048 Cache-Control: private, max-age=0, must-revalidate Cache-Control: private, max-age=0, must-revalidate Set-Cookie: _trane_session=ee47058b784246a19b9e0efc6762fc9d; path=/ Set-Cookie: _trane_session=ee47058b784246a19b9e0efc6762fc9d; path=/ Via: 1.0 fmi.rails-bg.net Via: 1.0 fmi.rails-bg.net Keep-Alive: timeout=15, max=100 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Connection: Keep-Alive
    • не е binary
    • Request
    • GET /topics ? type=stupid & subtype=rockingchair
    • GET не е хубаво да променя състоянието
    • POST
    • PUT
    • DELETE
    • глава / header
    • Тяло
    • И да не се сърдят дамите :-)
    • глава / header
    • header-и на заявка
    • header-и на заявка GET /topics HTTP/1.1
    • header-и на заявка GET /topics HTTP/1.1 Host: fmi.rails-bg.net
    • header-и на заявка GET /topics HTTP/1.1 Host: fmi.rails-bg.net User-agent: Mozilla/5.0...
    • header-и на заявка GET /topics HTTP/1.1 Host: fmi.rails-bg.net User-agent: Mozilla/5.0... Accept: text/html, application/xhtml+xml
    • header-и на заявка GET /topics HTTP/1.1 Host: fmi.rails-bg.net User-agent: Mozilla/5.0... Accept: text/html, application/xhtml+xml
    • header-и на заявка content-type за тялото
    • header-и на заявка content-type за тялото POST /topics HTTP/1.1
    • header-и на заявка content-type за тялото POST /topics HTTP/1.1 Host: fmi.rails-bg.net
    • header-и на заявка content-type за тялото POST /topics HTTP/1.1 Host: fmi.rails-bg.net User-agent: Mozilla/5.0...
    • header-и на заявка content-type за тялото POST /topics HTTP/1.1 Host: fmi.rails-bg.net User-agent: Mozilla/5.0... Accept: text/html, application/xhtml+xml
    • header-и на заявка content-type за тялото POST /topics HTTP/1.1 Host: fmi.rails-bg.net User-agent: Mozilla/5.0... Accept: text/html, application/xhtml+xml Content-Type: application/x-www-form-encoded
    • HTTP/1.1 200 OK Content-Type: text/html Date: Wed, 22 Oct 2008 03:56:28 GMT Content-Length: 5048
    • 1xx Informational 2xx Successes 3xx Redirection 4xx Client Error 5xx Server Error 200 OK 301 Moved Permanently 404 Not Found 500 Internal Server Error
    • Тяло
    • Тяло
    • POST /topics HTTP/1.1
    • POST /topics HTTP/1.1 Host: fmi.rails-bg.net
    • POST /topics HTTP/1.1 Host: fmi.rails-bg.net Content-Type: application/x-www-form-encoded
    • POST /topics HTTP/1.1 Host: fmi.rails-bg.net Content-Type: application/x-www-form-encoded title=The Best Title&content=...
    • HTTP/1.1 200 OK
    • HTTP/1.1 200 OK Content-Type: text/html
    • HTTP/1.1 200 OK Content-Type: text/html Date: Wed, 22 Oct 2008 03:56:28 GMT
    • HTTP/1.1 200 OK Content-Type: text/html Date: Wed, 22 Oct 2008 03:56:28 GMT Content-Length: 5048
    • HTTP/1.1 200 OK Content-Type: text/html Date: Wed, 22 Oct 2008 03:56:28 GMT Content-Length: 5048 <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML...
    • HTTP/1.1 200 OK Content-Type: text/html Date: Wed, 22 Oct 2008 03:56:28 GMT Content-Length: 5048 <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML... <html lang='bg' xml:lang='bg'...
    • HTTP/1.1 200 OK Content-Type: text/html Date: Wed, 22 Oct 2008 03:56:28 GMT Content-Length: 5048 <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML... <html lang='bg' xml:lang='bg'... <head>
    • HTTP/1.1 200 OK Content-Type: text/html Date: Wed, 22 Oct 2008 03:56:28 GMT Content-Length: 5048 <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML... <html lang='bg' xml:lang='bg'... <head> <title>Програмирани с Ruby и Rails...
    • State fmi.rails-bg.net
    • State fmi.rails-bg.net /topics 10:01
    • State fmi.rails-bg.net /topics /tasks 10:01 10:02
    • State fmi.rails-bg.net /topics /tasks /topics/5 10:01 10:02 10:03
    • State fmi.rails-bg.net /topics /tasks /tasks/1 /topics/5 10:01 10:02 10:03 10:04
    • State less fmi.rails-bg.net /topics /tasks /tasks/1 /topics/5 10:01 10:02 10:03 10:04
    • Cookies
    • Cookies HTTP/1.1 200 OK Content-Type: text/html Set-Cookie: secret=ndrznzvr
    • Cookies HTTP/1.1 200 OK Content-Type: text/html Set-Cookie: secret=ndrznzvr
    • Cookies HTTP/1.1 200 OK Content-Type: text/html GET /baba HTTP/1.1 Set-Cookie: secret=ndrznzvr Host: fmi.rails-bg.net Cookie: secret=ndrznzvr
    • Cookies HTTP/1.1 200 OK Content-Type: text/html GET /baba HTTP/1.1 Set-Cookie: secret=ndrznzvr Host: fmi.rails-bg.net Cookie: secret=ndrznzvr
    • </http>
    • Content-Type: text/html <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML... <html lang='bg' xml:lang='bg'... <head> <title>Програмирани с Ruby и Rails...
    • Content-Type: text/html HTML <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML... <html lang='bg' xml:lang='bg'... <head> <title>Програмирани с Ruby и Rails...
    • Content-Type: text/html XHTML <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML... <html lang='bg' xml:lang='bg'... <head> <title>Програмирани с Ruby и Rails...
    • Цел: съдържание на страницата (не изгледа, не поведението)
    • Markup = Маркиране ± език
    • Markup = Маркиране ± език <чушка цвят=quot;жълтquot;>
    • Markup = Маркиране ± език <чушка цвят=quot;жълтquot;> </чушка>
    • Markup = Маркиране ± език <чушка цвят=quot;жълтquot;> </чушка>
    • Смисъл, структура
    • <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0 Strict//ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtdquot;> <html> <head> ? </head> <body> ? </body> </html>
    • <head> <title>Моето любимо коте</title> <meta name=”generator” content=”моите две ръце” /> </head>
    • <body> <h1>Моето коте &mdash; Кънчо</h1> <p>Здрасти, това е страницата, поветена на моето любимо коте. Тук ще намерите много информация, снимки и връзки за него.</p> <ul class=quot;menuquot;> <li><a href=quot;/bioquot;>Биография на Кънчо</a></li> <li><a href=quot;/photosquot;>Снимки</a></li> </ul> <img src=quot;/kuncho_best.jpgquot; alt=quot;Кънчо -- най-красивquot;/> </body>
    • Is YOUR HTML valid? http://www.w3.org/TR/html401/ http://validator.w3.org/ http://www.w3.org/TR/xhtml1/
    • Сам е скучно, искам в група Сам е скучно
    • И таговете са по-добре с компания
    • <div> каквито си искате тагове </div> <span> почти каквито искате </span>
    • Кой съм аз и за какво се боря? Как да ме намериш?
    • Разпознаване <div id=quot;footerquot;> <ul class=quot;menuquot;> <div class=quot;menu replyquot;> атрибути за всички тагове
    • Формуляри <form action=quot;/topicsquot; method=quot;postquot;> <label for=quot;fullnamequot;>Full name</label> <input name=quot;fullnamequot; id=quot;fullnamequot; type=quot;textquot; /> <input name=quot;tickquot; type=quot;checkboxquot; checked=quot;checkedquot; /> <textarea name=quot;freetextquot;>Feed me!</textarea> <select name=quot;projectquot;> <option value=quot;easyquot;>The hard one</option> <option value=quot;hardquot; selected=quot;selectedquot;>The easy one</option> </select> <input type=quot;submitquot; value=quot;Run, Lolaquot;> </form>
    • За някои е важно всичко да е красиво
    • Дори отвътре да е развалено
    • Красота ⊂ HTML + CSS В този курс ще се интересуваме от вътрешната красота, но ако все пак ви интересува
    • Стандартен изглед на някои HTML тагове <h1>,
<h2> <strong> <em> •<li></li> <a> <p> <div>,
<p>,
<form>
с
кутийка
и
нов
ред
около
тях <a>,
<span>,
<strong>,
<img>
един
след
друг
    • CSS Cascading Style Sheets http://www.w3.org/Style/CSS/ http://w3schools.com/css/ http://jigsaw.w3.org/css-validator/
    • Как си пазим съдържанието, което трябва да структурираме в HTML?
    • Опитвали сте се сами да мислите файлови формати и интерфейс за достъп до данните си?
    • Релационен модел
    • Котки релация ≈ таблица
    • Котки релация ≈ таблица ID Име Порода 1 Macorana3f Сомалийска 2 Стрептокок Сиамска 3 Шрапнел Сомалийска 4 Рекса Мейн Куун
    • Котки релация ≈ таблица Първичен ключ/PK ID Име Порода 1 Macorana3f Сомалийска 2 Стрептокок Сиамска 3 Шрапнел Сомалийска 4 Рекса Мейн Куун
    • Котки релация ≈ таблица Първичен ключ/PK ID Име Порода Запис/ред 1 Macorana3f Сомалийска 2 Стрептокок Сиамска 3 Шрапнел Сомалийска 4 Рекса Мейн Куун
    • Нормализация ≈ липса на повторения на данни Пак далеч от теорията
    • ID Име Порода 1 Macorana3f Сомалийска 2 Стрептокок Сиамска 3 Шрапнел Сомалийска 4 Рекса Мейн Куун
    • Котки Породи
    • Котки ID Име ID на Порода 1 Macorana3f 2 2 Стрептокок 1 3 Шрапнел 2 4 Рекса 3 Породи
    • Котки ID Име ID на Порода 1 Macorana3f 2 2 Стрептокок 1 3 Шрапнел 2 4 Рекса 3 ID Порода 1 Сиамска 2 Сомалийска 3 Мейн Куун Породи
    • Котки ID Име ID на Порода 1 Macorana3f 2 2 Стрептокок 1 3 Шрапнел 2 4 Рекса 3 Котка към Порода, много към едно ID Порода 1 Сиамска 2 Сомалийска 3 Мейн Куун Породи
    • Котки ID Име ID на Порода 1 Macorana3f 2 2 Стрептокок 1 3 Шрапнел 2 4 Рекса 3 Котка към Порода, много към едно ID Порода 1 Сиамска От всяка порода може да 2 Сомалийска има много котки, една 3 Мейн Куун котка е от една порода Породи
    • Мелези?
    • Котка към Порода, много към много
    • Котка към Порода, много към много От всяка порода може да има много котки, една котка може да е от много породи
    • Котки ID Име 1 Macorana3f 2 Стрептокок 3 Шрапнел 4 Рекса Котка към Порода, много към много От всяка порода може да има много котки, една котка може да е от много породи
    • Котки ID Име 1 Macorana3f 2 Стрептокок 3 Шрапнел 4 Рекса Котка към Порода, много към много ID Порода 1 Сиамска 2 Сомалийска От всяка порода може да има 3 Мейн Куун много котки, една котка може да е от много породи Породи
    • Котки към породи Котки ID на ID на ID Име ID котка порода 1 Macorana3f 1 1 1 2 1 2 2 Стрептокок 3 2 1 3 Шрапнел 4 3 2 4 Рекса 5 4 4 Котка към Порода, много към много ID Порода 1 Сиамска 2 Сомалийска От всяка порода може да има 3 Мейн Куун много котки, една котка може да е от много породи Породи
    • SQL Structured Query Language
    • SELECT * FROM kittens SELECT * FROM kittens WHERE age < 2 SELECT id, name FROM kittens WHERE name LIKE ‘Brr%’
    • UPDATE kittens SET age = age +1 WHERE name = ‘Birthday Kitten’
    • INSERT INTO kittens (id, name, age) VALUES (7, ‘Pinko’, 1) INSERT INTO kittens (name) VALUES (‘Pinko’)
    • NULL NULL
    • SELECT NULL + 2 →NULL
    • Задача: име и порода за всяка котка? Заявка върху повече от една таблица?
    • ID Име ID на Порода 1 Macorana3f 2 2 Стрептокок 1 3 Шрапнел 2 4 Рекса 3 Задача: име и порода за всяка котка? Заявка върху повече от една таблица?
    • ID Име ID на Порода ID Порода 1 Macorana3f 2 1 Сиамска 2 Стрептокок 1 2 Сомалийска 3 Шрапнел 2 3 Мейн Куун 4 Рекса 3 Задача: име и порода за всяка котка? Заявка върху повече от една таблица?
    • JOIN декартово произведение на две таблици
    • JOIN декартово произведение на две таблици ID на котка Име ID на Порода ID на порода Порода 1 Macorana3f 2 1 Сиамска 2 Стрептокок 1 2 Сомалийска 3 Шрапнел 2 3 Мейн Куун 4 Рекса 3 1 Сиамска 1 Macorana3f 2 2 Сомалийска 2 Стрептокок 1 3 Мейн Куун 3 Шрапнел 2 1 Сиамска 4 Рекса 3 2 Сомалийска 1 Macorana3f 2 3 Мейн Куун 2 Стрептокок 1 1 Сиамска 3 Шрапнел 2 2 Сомалийска 4 Рекса 3 3 Мейн Куун
    • When a bike is stolen, a fairy dies