이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 19401|회답: 2

[ASP.NET] ASP.NET HttpListener를 사용해 파일 브레이크포인트를 재개하세요

[링크 복사]
게시됨 2019. 11. 27. 오전 10:42:41 | | |
브레이크포인트 연속 원리는 매우 간단합니다. 즉, HTTP 요청 및 응답 메시지의 헤더가 일반적인 다운로드와 다릅니다.
서버에서 문서를 일반적으로 요청할 때, 요청이 이루어지고 서버가 받는 방식은 다음과 같습니다:
요청 헤더:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
응답 헤더:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

서버가 브레이크포인트 재개를 지원할 때, 요청과 응답은 다음과 같습니다:
요청 헤더:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
응답 헤더:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

두 메시지의 서로 다른 부분은 빨간색 구역으로 표시되어 있습니다. 다음과 같이 확인할 수 있습니다:
Range 헤더는 고객이 원하는 다운로드 위치를 식별하는 데 사용됩니다.
서버의 응답 번호가 200일 때는 다운로드가 파일 헤더에서 시작되었고, 206은 전송이 파일의 특정 위치에서 시작됨을 의미합니다.
즉, 브레이크포인트 재수기를 지원할 때는 파일의 어느 부분에서든 다운로드할 수 있지만, 일반적인 방식은 파일 헤더에서만 다운로드할 수 있습니다.
서버가 브레이크포인트 재개를 지원하려면 다음 문제들을 해결해야 합니다:

1。 재개(resumption) 요청이라면, 클라이언트가 요구하는 파일 범위를 확보해야 합니다.
위 분석에서 볼 수 있듯이, 클라이언트가 브레이크포인트를 전송할 때 패킷 헤더에 범위 필드가 추가되며, 다음과 같이 브레이크포인트 전송 요청인지 판단할 수 있습니다.
문자열 범위 = 요청. 헤더["범위"];
bool isResume = 문자열. IsNullOrEmpty(범위);

2。 클라이언트에게 올바르게 응답하여 엔드포인트가 계속 지원되고 있음을 클라이언트 서버에 알립니다
브레이크포인트 요청을 보낼 때, 클라이언트의 해당 번호는 다음과 같이 설정할 수 있습니다:
응답. 상태코드 = 206;

3。 고객이 필요로 하는 올바른 콘텐츠를 제공하세요
고객이 요구하는 올바른 콘텐츠를 제공하기 위해서는 일반적으로 다음과 같은 단계가 포함됩니다
클라이언트의 파일 요청 범위를 분석하여 구간을 얻으세요.
브레이크포인트가 전송되면 필요한 길이가 파일 길이보다 짧으므로 올바른 응답을 설정해야 합니다. ContentLength64 속성입니다.
필요한 내용을 올바르게 전송하세요
코드 예시:






이전의:httplistener는 POST 요청 매개변수를 얻기 위해 청취합니다
다음:18명의 철학 만화가들, 모두 거장들이다
게시됨 2019. 11. 27. 오후 1:14:14 |
마크
게시됨 2019. 11. 30. 오후 12:04:39 |
표시됨      
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com