2017-12-13 14 views
1

소켓 모듈로 파이썬 웹 서버를 만들려고합니다. 나는이 비디오 https://www.youtube.com/watch?v=_najJkyK46g을 따르고있다.파이썬 웹 서버를 만들 수 없습니다

이 내 코드입니다 :

import socket 

host = '' 
port = 8000 

listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
listen_socket.bind((host, port)) 
listen_socket.listen(1) 

print("Listening on port "+str(port)) 

while True: 
    client_connection, client_address = listen_socket.accept() 
    request = client_connection.recv(1024) 
    print(request) 

    http_response = "Hello World." 

    client_connection.sendall(bytes(http_response.encode('utf-8'))) 
    client_connection.close() 

내가 크롬과 작동하지 않는 127.0.0.1:8000를 입력하십시오. "이 페이지가 작동하지 않습니다"라는 오류 메시지가 나타납니다. 127.0.0.1에서 잘못된 응답을 보냈습니다. ERR_INVALID_HTTP_RESPONSE. 도와주세요?

크롬을 준수하지 않는 Hello World. 구조화 된 프로토콜 인 HTTP 응답을 기대하고있다

답변

0

:

상태 표시 줄 :

https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Response_message

응답 메시지는 다음과 같은 구성을 상태 코드 및 이유 메시지 (예 : HTTP/1.1 200 OK, 클라이언트의 요청이 성공했음을 나타냄)가 포함됩니다. 응답 헤더 필드 (예 : Content-Type : text/html) 빈 줄. 선택적 메시지 본문입니다. 상태 표시 줄 및 기타 헤더 입력란은 모두 이어야합니다. 빈 줄은 으로 구성되어야하며 다른 공백은 없어야합니다. [31] 이러한 엄격한 요구 사항은 이 메시지 본문 내에서 어느 정도 완화되어 다른 또는 그와 같은 시스템 줄 바꿈을 일관되게 사용합니다. [33] 다음과 같은 응답에 업데이트

작동합니다 :

HTTP/1.1 200 OK 
Date: Mon, 23 May 2005 22:38:34 GMT 
Content-Type: text/html; charset=UTF-8 
Content-Encoding: UTF-8 
Content-Length: 138 
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT 
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) 
ETag: "3f80f-1b6-3e1cb03b" 
Accept-Ranges: bytes 
Connection: close 

<html> 
<head> 
    <title>An Example Page</title> 
</head> 
<body> 
    Hello World, this is a very simple HTML document. 
</body> 
</html> 

당신은 HTTP 내가 데프 파이썬 웹 HTTP 프레임 워크, 어느 많습니다을 추천 할 것입니다 통해 통신 할 수있는 서버를 만들기 위하여려고하는 경우 . 되는 두 개의 매우 가벼운 무게 것들 :

+0

은 그래서 혼란 스러워요. 파이썬 스크립트에 HTML을 추가하길 원하십니까? 그건 불가능합니다, 그렇죠? 우리는 하나의 언어로 이것을 할 수 있을까요? –

관련 문제