
Информатика: өз цифрлық көмекшімізді жасаймыз 44-сабақ (барлығы 46)
HTTP: браузер мен сервердің сөйлесуі
HTTP сұрауы мен жауабын нақты келісім ретінде оқимыз: жол, параметр, күй коды және мазмұн.
Картадағы орнымыз
Бұл 72 сабақтың 44-сі, «Интернет, веб және бұлт» блогы (39–46). Бір жобаны жалғастырамыз: 1.0 нұсқасындағы ойдан алынған үш жазба мен еске салудың бес нәтижесі сақталуы тиіс. Тірек сызба тексеруге болатын өтуді ғана көрсетеді; жебе барлық аралық құрылғы салынғанын білдірмейді.
Жағдай және сұрақ
Кітапханашыдан 9 қазандағы тапсырма тізімін сұрадыңыз. Тек «тізімді бер» десеңіз, күн белгісіз; күн қате болса, түсінікті жауап керек. Браузер мен сервер де жорамал емес, айқын өрістермен алмасады. Енді көмекшіңіз браузерде жауап береді.
Алғашқы іске қосу алдында
Алдымен оқу жобасының бумасын ашыңыз; Code → Download ZIP арқылы репозиторийді жүктеп, ішіндегі course/informatics-assistant/step-04 бумасына өтіңіз. Қоспас бұрын 27–38 сабақтан таныс үш әрекетті орындаңыз: терминалды step-04 ішінде ашып, python3 --version және python3 -c 'print(2 + 1)' жазыңыз. Python нұсқасы мен 3 санын көріңіз. Бумада web_assistant.py және tasks.json табыңыз; JSON файлын бағдарлама ретінде іске қоспаңыз. python3 табылмаса, 1.0 блогындағы орнату нұсқауына оралыңыз. 8765 порты — өз компьютеріңіздегі қызмет нөмірі; оны провайдерден сатып алу не баптау қажет емес. Сервер қосылған соң терминалды жаппай, браузердегі мекенжайға өтіңіз. Порт бос болмаса, алдыңғы үдерісті Ctrl+C арқылы тоқтатыңыз не --port 8766 қолданып, мекенжайдағы санды өзгертіңіз.
Жаңа сөздерді анық түсінейік
HTTP — клиент пен сервер арасындағы сұрау-жауап ережелері. GET әдісі деректің көрінісін сұрайды; біздің жобада файлды өзгертпейді. Жол / бетті таңдайды, сұрау параметрі today=2026-10-09 қаралатын күнді береді. 200 коды сәтті жауапты, 400 қате енгізуді, 404 жоқ жолды, 405 рұқсат етілмеген әдісті білдіреді. Жауап тақырыбы мазмұн түрін көрсетеді: text/html; charset=utf-8.
Сабақтың тірек сигналы
Сызбаны солдан оңға қарай оқыңыз. Әр жебенің кірісін, әрекетін және тексерілетін нәтижесін атаңыз. Келесі карточканың жазуын жауып, оны өз сөзіңізбен болжаңыз. Нақты мысалға оралыңыз: оқу ұқсастығын, localhost жұмысын және болашақ қашық сайтты ажыратыңыз. Сурет түсіндірмеден артық уәде етсе, мәтінді не суретті түзетіңіз.
Қадамдап талдаймыз
step-04 бумасында python3 web_assistant.py --port 8765 іске қосыңыз. http://127.0.0.1:8765/?lang=kz&today=2026-10-09 ашыңыз. Сервер tasks.json оқып, бұрынғы функциямен күйлерді есептеп, HTML береді. Сол күндегі үш бастапқы тапсырма үшін REMIND, DONE, NO_DATE көрінеді. Күнді 2026-02-29 етіп ауыстырыңыз: мұндай күн жоқ, сервер оны үнсіз түземей 400 қайтарады. /unknown — 404, ал POST — 405; бұл оқу нұсқасы деректі тек көрсетеді.
Болжаңыз және тексеріңіз
Кодты бірден іске қоспаңыз. Жол реті мен таңбаларын сақтап, нақты нәтиже жазыңыз. Бұл шағын мысал нені дәлелдейді, нені дәлелдемейді, түсіндіріңіз: ол бір ережені көрсетеді, бірақ шынайы интернет, TLS сертификаты немесе ашық сервер жасамайды. Содан соң үзіндіні step-04 бумасында орындап, нәтижені таңба бойынша салыстырыңыз. Бір кірісті өзгертіп, алдымен болжап, кейін тексеріңіз.
from urllib.parse import urlsplit
address = urlsplit("http://127.0.0.1:8765/?today=2026-10-09")
print(address.path, address.query)
Күтілетін нәтиже
/ today=2026-10-09
Қатені табыңыз
HTTP 200 кодын барлық тапсырма дұрыс деген бағамен шатастырмаңыз: ол тек сұрау өңделгенін көрсетеді. GET арқылы «орындалды» деп белгілеу дұрыс емес: сілтемені браузер не басқа бағдарлама қайталай алады. Ішкі қате трассасын немесе файл жолын пайдаланушыға көрсетпеңіз.
Жобаға енгізілетін өзгеріс
Үш жолдық кесте жасаңыз: дұрыс GET — 200, қате күн — 400, жоқ жол — 404. Әр жағдайда tasks.json өзгере ме (жоқ), жазыңыз. lang=ru және lang=en тек бет жазуларын өзгертіп, еске салу ережесін қозғамайтынын белгілеңіз.
Тапсырма және дәлел
Төрт мекенжайдың нәтижесін алдын ала болжаңыз: /, /?today=2026-10-09, /?today=2026-02-29, /missing. Қосқан соң браузермен не curl -i арқылы код пен мазмұн түрін тексеріңіз. Файлды бұрынғы күйімен салыстырып, неге өзгермегенін түсіндіріңіз.
Жаңа жағдайға көшіру
Күн таңдайтын мектеп кестесін елестетіңіз. Қай параметрді GET арқылы оқуға болады, ал қай әрекетке бөлек әдіс, өкілетті тексеру және жалған сұраудан қорғаныс қажет?
1, 7 және 30 күннен кейін қайталау
1 күннен кейін негізгі өтуді жатқа сызып, тым қарапайым ұқсастыққа қарсы мысал келтіріңіз. 7 күннен кейін мәтінге қарамай жаңа жағдайды досыңызға түсіндіріп, 10 сұрақтың кемінде 7-еуін тексеріңіз. 30 күннен кейін жергілікті веб-нұсқаны қайта ашып, үш бастапқы тапсырма мен бес ереженің сақталғанын көріңіз. Түсініксіз терминді жазып, оның алғашқы анықтамасына оралыңыз.
Пікірлер (0)
Пікір қалдыру үшін кіріңіз →
Әзірге пікір жоқ. Бірінші болыңыз.