내 하위 클래스 인 BaseHTTPRequestHandler
에서 클라이언트가 보낸 쿠키를 "검색"합니다.Python을 사용하는 쿠키와 HTTP
은 첫째로 나는이 이벤트의 순서에 대한 이해입니다 전형적인 HTTP 요청 및 응답 헤더의 전송의 정확한 순서 확실 해요 :
- 클라이언트는 방법, 경로, HTTP (요청을 보냅니다 버전, 호스트 및 모든 헤더).
- 서버는 응답 코드로 응답하고 그 뒤에 일련의 자체 헤더가옵니다.
- 그런 다음 서버는 응답 본문을 보냅니다.
정확히 클라이언트의 POST 데이터가 전송됩니까? 위에서 설명한대로이 시퀀스에서 중복이 발생합니까?
둘째로, "쿠키"헤더가 서버에 수신되었다고 가정하는 것이 안전한 경우는 언제입니까? 서버에 의해 호출 된 self.send_response
때까지 모든 클라이언트 헤더를 수신해야합니까? HTTP 통신에서 쿠키 헤더를 들여다 볼 적절한 시간은 self.headers
일까요?
세 번째로, 은입니다. 파이썬에서 쿠키를 구문 분석하는 표준 방법입니다. 나는 현재 Cookie.SimpleCookie
을 인스턴스화해야한다고 생각하고 쿠키 헤더의 데이터를 어떻게 받아 들여야하는지 생각한다. HTTPRequestHandler 인터페이스를 다룰 때 Cookie 클래스가 clunky가됩니다. 마지막으로, Cookie
모듈에서 쿠키 클래스, 그들은 '하는 환상을주는 이유는 줄 끝으로 끝나지 Cookie.output()
의 출력은 self.wfile.write(cookie.output())
에 맞지 않거나, 대신 self.send_header("Set-Cookie", cookie.output())
에 잘 맞도록 암시 적으로 제공 헤더 이름을 드롭 사전의 사전. 쿠키의 다른 키에 할당하면 더 많은 데이터가 쿠키에 저장되지 않고 오히려 더 많은 쿠키가 생성됩니다. 모든 쿠키는 분명히 한 클래스에 있고 각 쿠키는 자체 Set-Cookie 헤더를 생성합니다. 가치 컨테이너를 쿠키로 포장하는 가장 좋은 방법은 무엇입니까?
세 번째 : 쿠키를 사용자에게 다시 보낼 수있는 "깔끔한"방법은 없습니다. 설명 된 바와 같이 쿠키는 수동으로 첨부 된 암시 적 헤더 또는 '\ r \ n'을 수동으로 도용 한 다음 쿠키가 분명히 헤더 임에도 불구하고 self.wfile에 수동으로 _written_합니다. –
@Matt , 내가 명확하게 A를 편집하자. –