이것은 파일 이름에 '.xml' 접미사가 있는지 여부에 따라 웹 서버가 XML 파일에 대한 요청을 처리하는 방법에 대한 질문입니다.
미리 사과드립니다. 저는 이러한 맥락에서 웹 서버와 브라우저가 어떻게 작동하는지 잘 알지 못합니다.
나는 Gatsby 와 함께 일하면서 이 질문에 도달했습니다 . 로컬 호스트에서 개발 중입니다.
다른 호스트에서 제공되는 다른 유사한 XML 파일과 다르게 동작하는 로컬 gatsby 서비스 XML 파일을 관찰했기 때문에 질문이 제기되었습니다. 이것이 문제에 대한 빨간 청어인지 아닌지 확실하지 않습니다.
네, 읽어주셔서 감사합니다. 자세한 내용은 다음과 같습니다.
gatsby에서 제공하는 xml 파일/리소스가 있습니다(예: gatsby develop
또는 사용 gatsby serve
)
파일 이름을 다음과 같이 my-xml-file.xml
지정한 다음 를 통해 브라우저(Chrome)에서 해당 파일 로 이동하면 http://localhost:8000/my-xml-file.xml
모든 것이 정상입니다. Chrome은 이를 브라우저에 로드/표시합니다.
그러나 파일 이름을 그냥 my-xml-file
, 즉 파일 이름에서 '.xml' 접미사를 제거하면 브라우저(Chrome)에서 해당 파일로 이동하려고 하면 http://localhost:8000/my-xml-file
Chrome이 로드/표시하지 않습니다. 대신 이 시나리오에서 Chrome은 다른 이름으로 저장 대화 상자를 엽니다.
여기에서 무슨 일이 일어나고 있는지 어떤 아이디어가 있습니까?
이것이 나를 혼란스럽게 하는 이유는 '.xml' 접미사 없이 제공되는 xml 파일인 웹의 다른 위치로 이동하면 Chrome이 브라우저에서 이를 기꺼이 로드/표시하기 때문입니다.
예를 들어:
Chrome은 이러한 URL을 브라우저에서 직접 로드/표시합니다.
위의 예와 같이 파일 이름에 .xml 접미사가 없는 xml 파일을 제공할 때와 다른 사이트에서 제공할 때의 동작이 다른 이유는 무엇입니까?
이것을 알아내기 위해 내가 지금까지 시도한 것들.
/my-xml-file.xml을 사용하여 로컬에서 파일을 제공하고 Chrome에서 엽니다.
/my-xml-file을 사용하여 로컬에서 파일 제공, Chrome에서 열기
파일 이름을 바꾸고 /my-xml-file.rss로 제공하여 Chrome에서 엽니다.
/my-xml-file.xml을 사용하여 로컬에서 파일 제공, Edge에서 열기
/my-xml-file을 사용하여 로컬에서 파일 제공, Edge에서 열기
비슷한 문제에 대해 StackOverflow를 통해 검색했습니다. 다음을 찾았습니다(그러나 이 문제와 구체적으로 일치하는 것은 없는 것 같습니다.
내 로컬 예제에서 응답 헤더를 확인하고 위의 다른 예제와 비교했습니다. 내 눈을 사로 잡은 것이 있습니다 ...에 대한 응답의 값이 Content-type
다릅니다 ...
응답 헤더에 대한 조사를 기반으로 답변을 찾은 것 같습니다.
에 대한 값 content-type
은 xml 리소스에 대해 적절하게 설정되어야 합니다.
내 로컬 호스트에서 이름에 '.xml' 접미사가 없는 파일은 application/octet-stream
.
그것은 아마도 application/rss+xml; charset=utf-8
또는 아마도 같은 것으로 제공되어야 합니다 application/xml
.
아직 확인할 기회가 없었습니다. 확인되면 다시 보고하겠습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다