2016-10-13 9 views
0

주어진 URL이 다운로드 할 파일인지 어떻게 알 수 있습니까?URL이 파일 다운로드인지 확인

나는 content-disposition 헤더를 발견했지만, 이는 http 1.1의 일부가 아닌 것으로 보입니다.

에 대한 요청이 GET 요청에 대해 실제로 다운로드 할 수 있는지 검색하는 더 일반적인 방법이 있습니까?

응답이 html이나 json 또는 이와 비슷한 것이 아니라 이미지, mp3, pdf 파일 등의 응답입니까?

+0

당신은 Content-Disposition이 HTTP의 "일부"가 아니라고 생각합니까? http://www.iana.org/assignments/message-headers/message-headers.xhtml –

+0

@JulianReschke https://www.ietf.org/rfc/rfc2616.txt, 섹션 5.5를 참조하십시오. – Thihara

+0

RFC 2616은 2 년 전에 폐기되었습니다. –

답변

0

content-type을 사용하여 HTML 파일 또는 지정된 URL의 다른 끝에있는 다른 유형의 파일인지 결정했습니다.

어디서나 머리글을 사용할 수 없기 때문에 content-disposition 헤더 내용이있는 경우 원본 파일 이름을 감지하는 데 사용하고 있습니다.

2

HTTP는 전송 프로토콜입니다. 이는 하드 드라이브 저장소 레이아웃과 매우 다른 것입니다. "파일"의 개념은 단순히 HTTP에는 존재하지 않습니다. 컴퓨터 하드 드라이브에는 사무용 파일 시스템에서 볼 수있는 실제 종이와 판지 "파일"만 포함됩니다.

응답 내용을 컴퓨터 파일에서 가져올 필요가 없다고 말하는 HTTP 메시지 또는 URL이 무엇이든 생각할 수도 있으므로받는 사람이 저장하지 않아도됩니다.

HTTP의 GET 메시지에 대한 응답은 동일한 URL (HTTP/1.1 변형의 경우에는 다른 헤더)을 사용하여 다른 GET 요청을 보내면 항상 "다운로드"할 수 있습니다. 이것은 GET 메시지의 정의에 내장되어 있으며 파일과 관련이 없습니다.

+0

나는 주어진 URL의 다른 끝에 무엇이 있는지를 탐지하는 방법을 찾고 있었다. 예를 들어 Google 드라이브의 공유 파일 링크는 직접 다운로드 할 수 없습니다. 응답은 html입니다. 그러나 나는 당신의 요점을 이해합니다. – Thihara

0

파일 확장자를 검사 할 수 있습니까? 죄송합니다. 더 이상 알지 못해서 그만큼 확대 할 수는 없지만 HTML에 충분한 기능이없는 경우 PHP를 사용하여이 문제를 해결할 수 있습니까?

+0

불행히도 그것은 간단하지 않습니다 :-). 때로는 파일 이름이나 확장 정보가 헤더에 없습니다. – Thihara