Бұл материал «Кәсіпорынның дамуына кіріспе» сериясының бөлігі болып табылады. Алдыңғы мақалалар:
Сәлеметсіз бе! Бүгін біз HTTP және HTTPS протоколдарын түсінеміз. Бірақ алдымен бір мәселені анықтап алайық: біз OSI моделінің қолданбалы деңгейінде желі арқылы деректерді беру хаттамалары туралы айтып отырмыз. Естеріңізде болса, OSI үлгісін алдыңғы мақалалардың бірінде талқылаған болатынбыз. Ал есіңізде болмаса, міне .
HTTP протоколы тек мәтіннен тұратынын бірден атап өткен жөн. Бізді бұл мәтіннің қай құрылымда орналасқаны қызықтырады. Әрбір хабарлама үш бөліктен тұрады:
Мәліметтерді тасымалдау протоколы дегеніміз не
Бұл жалпы қабылданған келісімге берілген атау, соның арқасында әртүрлі қызметтерді әзірлеушілер ақпаратты бір пішінде жібереді. Мысалы, Google Chrome арқылы сіз Facebook пен Twitter-ден де ақпаратты ала аласыз, өйткені әзірлеушілер оны стандартты HTTP протоколы арқылы жібереді және сіздің браузеріңіз оны өңдей алады. Бірыңғай ережелер serverлік әзірлеушілердің өздері үшін де өте ыңғайлы: сіз үшін ақпаратты түрлендіретін және қажетті протоколды пайдаланып жібере алатын көптеген кітапханалар бар. HTTP бастапқыда HTML беттерін тасымалдауға арналған протокол ретінде ойластырылған. Бұл ұзақ уақыт бойы болды, бірақ қазір бағдарламашылар оның үстіне жолдарды да, медиа файлдарды да жиі тасымалдайды. Жалпы, бұл протокол жан-жақты және икемді және оны пайдалану өте оңай. Енді мұны қалай жасау керектігін анықтайық.
HTTP құрылымы
HTTP протоколы тек мәтіннен тұратынын бірден атап өткен жөн. Бізді бұл мәтіннің қай құрылымда орналасқаны қызықтырады. Әрбір хабарлама үш бөліктен тұрады:
- Бастапқы жол — қызмет деректерін анықтайды.
- Тақырыптар – хабарлама параметрлерінің сипаттамасы.
- Хабардың негізгі бөлігі (Дене) – хабарлама деректері. Тақырыптардан бос жолмен бөлінуі керек.
Қарапайым HTTP сұрауы қалай көрінеді
GET / HTTP/1.1
Host: javarush.com
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Бастапқы жол мыналарды қамтиды:
- GET – сұрау әдісі;
- / — сұрау жолы (жол);
- HTTP/1.1 - деректерді тасымалдау протоколының нұсқасы.
- Хост — сұрау жіберілетін хост;
- User-Agent - бұл сұрауды жіберетін клиент.
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: javarush.com
{
"Id": 12345,
"User": "John"
}
Сұрау javarush.com/user/create/json мекенжайына жіберіледі, протокол нұсқасы HTTP/1.1. Accept клиенттің қандай жауап пішімін алуды күтетінін көрсетеді, Content-Type хабарлама мәтіні қандай пішімде жіберілетінін көрсетеді. Content-Length – денедегі таңбалар саны. HTTP сұрауында көптеген әртүрлі тақырыптар болуы мүмкін. Толық мәліметтерді хаттаманың спецификациясынан табуға болады .
HTTP жауаптары
Сұранысты алғаннан кейін server оны өңдейді және клиентке жауап жібереді:HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
Жауаптағы бастапқы жолда протокол нұсқасы (HTTP/1.1), Күй codeы (200), Күй сипаттамасы (ОК) бар. Тақырыптар мазмұнның түрі мен ұзақтығын көрсетеді. Жауаптың негізгі бөлігінде браузер HTML бетіне түсіретін HTML codeы бар.
Жауап күйінің codeтары
Хабарламаның негізгі мәтіні мен тақырыптарымен бәрі түсінікті, бірақ күй codeтары туралы бірнеше сөз айтқан жөн. Жауап күйінің codeтары әрқашан үш саннан тұрады және codeтың бірінші саны жауап санатын көрсетеді:- 1xx - ақпараттық. Сұраныс алынды, server жалғастыруға дайын;
- 2xx - сәтті. Сұраныс қабылданды, түсінілді және өңделді;
- 3xx - қайта бағыттау. Сұрауды өңдеу үшін келесі қадамдарды орындау қажет;
- 4xx - клиент қатесі. Сұрауда қателер бар немесе хаттамаға сәйкес келмейді;
- 5xx - server қатесі. Сервер сұрауды өңдей алмады, бірақ ол дұрыс құрастырылған;
- 200 OK — сұрау алынды және сәтті өңделді;
- 201 Құрылды — сұрау алынды және сәтті өңделді, нәтижесінде жаңа ресурс немесе оның данасы жасалды;
- 301 Тұрақты жылжытылды - сұралған ресурс біржола жылжытылды және оған кейінгі сұраулар жаңа мекенжайда орын алуы керек;
- 307 Уақытша қайта бағыттау - ресурс уақытша жылжытылды. Әзірге сіз оған автоматты қайта бағыттау арқылы қол жеткізе аласыз;
- 403 Тыйым салынған - сұрау түсінікті, бірақ авторизация қажет;
- 404 Табылған жоқ - server осы мекенжайдағы ресурсты таба алмады;
- 501 Орындалмаған - server бұл сұрауға жауап беру мүмкіндігін қолдамайды;
- 505 HTTP нұсқасына қолдау көрсетілмейді - server HTTP протоколының көрсетілген нұсқасына қолдау көрсетпейді.
GO TO FULL VERSION