HTTP протокол Има 3 основни елемента на HTTP заявката: метод, URI и header полета.
Метод на заявката – Метода описва вида на заявката, изпратена от клиента. Най-често използваните методи са GET и POST. Чрез GET метода клиента изисква някакъв ресурс от Web сървъра. POST метода служи за предаване на данни към сървъра. Имената на методите в HTTP заявките се изписват винаги с главни букви.
URI (Unique Resource Identifier) – Уникалния идентификатор еднозначно определя ресурса, над който ще оперира метода на заявката. Това е частта от URL, която стои след името на хост-а (сървъра) в URL.
HTTP/1.1 –версията на HTTP протокола, която ще буде използвана за осъществяването на тази HTTP сесия.
Header полета – Полетата от заглавната част на заявката носят допълнителна информация, касаеща заявката и определяща изисквания относно ресурса, който се очаква да бъде върнат от сървъра.
Празен ред – всяка HTTP заявка завършва с празен ред.
Пример:
Ако искаме да заредим началната страница от сайта www.dir.bg, това може да стане със следната HTTP заявка:
GET / HTTP/1.1
Host: www.dir.bg
Методи за HTTP заявка
Протокола HTTP версия 1.1 поддържа общо 8 различни метода: GET, POST, HEAD, PUT, DELETE, OPTIONS, TRACE, CONNECT. Най-често използваните методи обаче са GET и POST. Също така те имат най-голямо отношение къмм Web програмирането.
GET метод
GET метода прествавлява най-общо казано заявка от вида “дай ми ресурса, указан от URI”. Той се използва най-често в света на WWW, тъй като повечето Интернет страници са просто HTML файлове, разположени върху файловата система на сървъра и които Web сървъра просто връща на клиентите.
Реален пример на заявка с GET метод:
GET /InetJava-2002-program.html HTTP/1.1
Host: inetjava.sourceforge.net
Accept: */*
Accept-Language: bg
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0(compatible;MSIE 6.0; Windows NT 5.0)
Connection: Keep-Alive
Cache-Control: no-cache
Тази заявка ще ви върне програмaта на курса Интернет програмиране с Java.
Параметрите при заявка с GET метод се предават като след URI се постави въпросителна и след нея следват двойки <име на параметър1>=<стойност>, като двойките от този вид се разделят една от друга със &.
POST метод
POST метода предава данни на сървъра, които той може да обработи и на базата на тях да върне някакви резултати. POST метода се използва в случаите, когато отговора на клиентите представлява резултата от изпълнението на сървърски CGI скрипт, на който трябва да бъдат подадени някакви данни.
Реален пример на заявка с POST метод:
POST /webmail/login.phtml HTTP/1.1
Host: www.abv.bg
Accept: */*
Accept-Language: bg
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0(compatible;MSIE 6.0; Windows NT 5.0)
Connection: Keep-Alive
Cache-Control: no-cache
Content-Length: 59
LOGIN_USER=boris
DOMAIN_NAME=abv.bg
LOGIN_PASS=mypassword
Както се вижда от примерната POST заявка, параметрите се предават след самата заявка, като header полето показва общата дължина в символи на всички параметри и техните стойности.
Отговор – response
На всяка заявка на клиент (валидна или не) web сървъра връща някакъв отговор. При валидна заявка web сървъра връща на клиента изискания от него ресурс, ако последният съществува.
Форматът на отговора на HTTP сървъра е следният:
Статус линия – първият ред от отговора на сървъра съдържа версията на протокола – HTTP/1.1, код за резултат от заявката и кратко текстово пояснение на кода.
Header полета – също както при заявката, при отговора на HTTP сървъра присъстват header полета, които имат същия формат, както при заявката. Тук те също се използват за да внесат допълнителна информация за върнатия ресурс.
Празен ред – заглавната част от отговора завършва с празен ред.
Ресурс – след празния ред следва ресурса, който е бил изискан и ако той е валиден и съществува.
Пример за HTTP отговор:
На заявката
GET / HTTP/1.1
Host: www.dir.bg
Сървърът ще върне следния резултат:
HTTP/1.1 200 OK
Date: Sun, 14 Apr 2002 10:50:24 GMT
Server: Apache/1.3.23 (Unix) Debian GNU/Linux mod_ssl/2.8.7 OpenSSL/0.9.6c PHP/4.0.6
Cache-Control: private
X-Powered-By: PHP/4.0.6
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=windows-1251
HTTP – Hyper Text Transfer Protocol. Малко история по въпроса за HTTP – кога и защо е възникнал, т.н.
HTTP представлява прост текстов протокол, който се използва за пренос на практически вякакъв вид данни, наричани събирателно ресурси. Обикновено HTTP протокола работи през TCP/IP. В HTTP протокола има понятия като клиент (обикновено това са web browser-ите) и сървър (това са Web сървърите).
Стандартния порт на HTTP e 80, но може да се използва всеки друг свободен TCP порт.
HTTP се състои от:
• заявка (request) – съобщение от клиента към сървъра
• отговор (response) – отговор на сървъра на съобщението от клиента.
Общи сведения за Web сървърите.
Web сървърите са приложения, които “слушат” на определен порт (обикновено това е стандартния порт за HTTP – 80), и отговарят на заявките, получени от клиентски приложения (най-често клиентите на Web сървърите са browser-ите). Простите Web сървъри могат просто да връщат като отговор на заявките файловете, които са разположени в директорията, обозначена като главна Web директория. Например ако имаме един прост Web сървър и сме му указали, че главната му директория ще е C:MyWebSite, то тогава когато browser-a му поиска ресурса http://www.mywebserver.com/pictures/index.html, то Web сървъра ще му предостави файла C:MyWebSitepicturesindex.html. Но всички съвременни web сървъри имат възможността да предоставят на клиентите си динамично генериран HTML. Тази технология се нарича CGI – Common Gateway Interface. CGI се изразява в това, че на базата на HTTP заявката web сървъра решава коя CGI програма да стартира и връща на клиента това, което CGI програмта изпише на стандартния изход. CGI програмата може да бъде написана на практически всеки език или script за програмиране.
Заявка – request
Формата на HTTP заявката е следният:
<метод> <URI> HTTP/1.1
<headers>
<empty line>
Целия урок http://mytech.bg/uroci/1/Java/56/Web+програмиране+с+Java+сървлети+и+Java+Server+Pages+JSP+Основни+концепции+в+Web+програмирането+HTTP+протокол/2
Popularity: 1% [?]
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.
RSS Feed
Twitter

април 1st, 2010
admin
Posted in 
