Попытка построить веб-сервер и клиентскую программу на Python - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь завершить проект в школе, строящий веб-сервер и клиентскую программу с функциями GET, HEAD, PUT, DELETE.Когда я пытаюсь запустить сервер, клиент-сервер подключается, но когда я пытаюсь открыть его в браузере, он показывает пустой ответ, а в cmd - ниже опубликованную ошибку

Successfully Connected 127.0.0.1:62690 Traceback (most recent call last): File "Server.py", line 72, in <module> file, fileName, userInput, httpVersion = [str(i) for i in request.decode('utf-8').split('||')] ValueError: not enough values to unpack (expected 4, got 1) 

мой сервер.py здесь https://gist.github.com/keyur2maru/564abe344f59ee4dd59ae42b7879a394 Может кто-нибудь помочь мне отладить эту ошибку?Спасибо

1 Ответ

0 голосов
/ 02 марта 2019

В протоколе HTTP нет такой вещи, как заголовок из четырех токенов с разделителем ||, как того требует код вашего сервера:

file, fileName, userInput, httpVersion = [str(i) for i in request.decode('utf-8').split('||')]

Пожалуйста, измените код сервера и клиента так, чтобычто он соответствует стандартам HTTP Protocol , если вы хотите, чтобы браузер мог взаимодействовать с вашим сервером.Пример типичного HTTP-запроса должен выглядеть следующим образом:

GET /path/file.html HTTP/1.0

, поэтому строка кода вашего сервера должна быть больше похожа на:

action, file, http_version = request.decode().split()
...