사용자가 파일을 다운로드하도록 URL을 게시 할 수있는 웹 응용 프로그램이 있습니다. 나는 libcurl을 사용하고 있으며 파일 크기 제한을 적용하기 위해 응답 Content-Length를 확인하고 있습니다. 일부 서버를 들고 멀리 계속 업로드하고 결국 모든 사용 가능한 공간을 채우고 내 서버를 질식시킬 것이라고 걱정입니다. libcurl은 크기가 Content-Length보다 큰 경우 다운로드 파일을 중단합니까?파일 크기가 Content-Length를 초과하면 libcurl이 다운로드를 중단합니까?
2
A
답변
2
예 (대부분). Content-Length 필드 (사용 된 경우)는 HTTP가이 특정 응답 본문의 크기를 나타내는 데 사용되는 방법입니다. HTTP 클라이언트는 연결을 계속 열어두고 다음 요청을 위해 다시 사용하기 때문에 더 이상 읽을 수 없습니다.
이것은 기본적인 HTTP 1.1 기능이며 자세한 내용은 RFC7230에서 찾을 수 있으며 컬 코드를 읽으려면 Content-Length 헤더 일치 및 구문 분석에 대한 lib/http.c 소스 코드를 확인한 다음 추가 방법 'maxdownload'필드는 lib/transfer.c 등에 사용됩니다.
관련 문제
- 1. 업로드 파일 크기가 PHP에서 5MB를 초과하면 오류가 발생합니까?
- 2. 파일 다운로드를 강제로 수행
- 3. 파일 다운로드를 추적하는 방법
- 4. FTP 파일 다운로드를 중지하십시오.
- 5. 파일 크기가 제한을 초과하면 파일 업로드에 대한 HTTP 404 응답을 가로 챌 수있는 방법은 무엇입니까?
- 6. C libcurl이 문자열로 출력됩니다.
- 7. 문자열 풀의 크기가 초과하면 어떻게됩니까? 문자열 상수 수영장에서
- 8. 파일 다운로드를 위해 콜백을 구현하는 방법은 무엇입니까?
- 9. FLVplayback - 자동으로 파일 다운로드를 중지합니다.
- 10. 원치 않는 파일 다운로드를 추적해야합니다.
- 11. PHP로 파일 다운로드를 강제로 수행
- 12. 파일 다운로드를 감지하는 Chrome API
- 13. C++ LibCurl이 HTTPS 요청을 전송합니다.
- 14. OpenSSL이있는 Libcurl이 cron에서 발견되지 않았습니다.
- 15. libcurl이 POLLIN 시간 제한에 걸렸습니다
- 16. 문자열에서 파일 크기가
- 17. Javascript & on을 사용하여 자동으로 파일 다운로드를 제출하십시오.
- 18. 사용자가 자바 스크립트로 파일 다운로드를 수락했는지 확인하십시오.
- 19. MIME 형식의 파일 다운로드를 강제하는 방법
- 20. Java가 zip 파일 다운로드를 완료하지 않습니다.
- 21. jQuery가 파일 다운로드를 위해 양식을 제출 했습니까?
- 22. 플래시 플레이어에서 flv 파일 다운로드를 비활성화합니다
- 23. 웹 사이트에서 파일 다운로드를 비활성화하는 방법은 무엇입니까?
- 24. 파일 다운로드를 추적하는 가장 좋은 방법은
- 25. 특정 파일 형식의 다운로드를 제한하는 방법
- 26. 게으른 json 파일 다운로드를 구현하는 방법은 무엇입니까?
- 27. 셀레늄 그리드에서 파일 다운로드를 기다리는 중
- 28. asp.net에서 파일 다운로드를 자동으로 묻는 방법은 무엇입니까?
- 29. C# ActiveX에서 비동기 파일 다운로드를 구현하는 방법
- 30. Objective-c - UIWebView에서 파일 다운로드를 감지합니다.
당신은 간단한 테스트 케이스를 채우고 직접 시도 할 수 있습니다 ... 100k를 출력하는 스크립트와 50k 만 기대하는 다운로드 스크립트. –
@MarcB 알았어. 나는 그것을했고 Content-Length에서 멈췄다. 여태까지는 그런대로 잘됐다. 그러나 저는 권위있는 대답에 정말로 감사 할 것입니다. 파일 크기를 확인하는 소스 링크와 같습니다. 왜냐하면 다른 헤더의 존재가 뭔가를 바꿀 수 있기 때문입니다 (모든 것). –
@MarcB 게다가 나는 파일 크기보다 작은 Content-Length 헤더를 설정했기 때문에 스트리밍을 중단 한 것이 테스트 서버 (Webrick) 였을지 모른다. 그리고 libcurl은 수신을 중단하지 않았습니다. 내가 어떻게 알아야하니? –