Firefox에서 Ctrl + S를 사용하여 웹 페이지를 저장하면 브라우저가 사이트를 두 번로드합니까?


58

Firefox에서 Ctrl+ S로 오프라인 읽기를 위해 웹 사이트를 저장할 때 웹 페이지가 이미로드되어 있지만 다운로드 프로세스가 완료되는 데 몇 초가 걸립니다.

웹 페이지를 저장하면 Firefox가 모든 콘텐츠 (HTML, 이미지, JavaScript, CSS 등)를 두 번째로 가져올 지 또는 캐시에 이미로드 된 파일에서 가져 오는지 궁금합니다.


내가 기억하는 것처럼 오래된 파이어 폭스는 페이지를 다시로드했습니다. 답변은 현재 파이어 폭스에 대한 것입니다. 몇 년이 지났다.
user259412

"다운로드 프로세스"라고 부르는 것을 명확히 할 수 있습니까? 메모리에있는 리소스를 네트워크에서 다시 다운로드하지 않아도 브라우저는 폴더의 모든 데이터를 내보내고 링크를 변경하는 등의 작업을 수행해야합니다. 또한 스토리지 디스크가 일시 중지 된 경우 시간이 걸릴 수 있습니다 우리가 그것에 쓸 수 있도록 그냥 깨워 시간. 그러나 Library> Downloads 패널에 대해 이야기하고 1.2Mbps와 같은 것을 보여주는 경우 버그로 간주하지 않는 회귀 와 관련 있을 수 있습니다 .
Kaiido

4
다른 사용자가 이미 적절하게 대답했지만 소프트웨어 개발자가 동작 보증을 제공하지 않는 한 모든 소프트웨어에서 이러한 동작을 카탈로그 화하는 것은 쓸데없는 노력이 될 수 있습니다. 따라서 정답으로 표시된 답은 모든 미래 및 과거 버전에 대해 광범위하게 가정하기보다는 테스트 된 버전을 가리켜 야합니다. 최고 답변이 이미이 문제를 해결 한 것이 좋습니다. 알아; nitpicking.
Adnan Y

비록 이것이 "WTF"처럼 보이지만 실제로는 이것이 Firefox뿐만 아니라 10 년 전만해도 완벽하게 정상 이었다는 것이 현실입니다. 이유를 묻지 마십시오. 전혀 말이되지 않습니다.
데이먼

답변:


68

아니요, 두 번째 요청을 트리거하지 않습니다.

방금 간단한 HTTP 서버를 실행하여 요청을 기록하여 테스트했습니다. 웹 사이트를 저장할 때 서버에서 두 번째 요청을받지 못했습니다.

  • 테스트 : 우분투 18.04의 Firefox 61.0.1 (64-Bit)
  • 서버 : Python 2.7.15의 SimpleHTTPServer 모듈 ( python -m SimpleHTTPServer 7070)

편집하다:

서버가 "캐시 없음"헤더를 보내는 경우 주석 작성자가 다른 동작에 대해 물었습니다. 나는 그것을 테스트 Pragma: No-Cache하고 Cache-Control: No-Cache그 결과는 동일하게 유지됩니다.

테스트를 수행하는 데 사용한 코드 ( 이 답변을 통해 ) :

#!/usr/bin/env python
import SimpleHTTPServer

class MyHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_my_headers()

        SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self)

    def send_my_headers(self):
        self.send_header("Pragma", "No-Cache")
        self.send_header("Cache-Control", "No-Cache")


if __name__ == '__main__':
    SimpleHTTPServer.test(HandlerClass=MyHTTPRequestHandler)

11

아닙니다.

인터넷에서 컴퓨터의 연결을 끊고 이미로드 된 웹 페이지를 저장하여 코드없이 이것을 테스트했습니다.

효과가있었습니다. 동일한 테스트를 직접 수행 할 수 있습니다.


컴퓨터가 온라인 또는 오프라인 인 경우 동작 다를 있지만 현재 가장 많이 사용되는 답변 은보다 심도있는 테스트를 보여줍니다. 간단한 테스트 를하는 것이 여전히 가치 있다고 생각합니다 .


11
Expires, Cache-control, Pragma 및 기타 헤더 조합이 너무 많기 때문에 "이 경우에는 해당되지 않습니다"는 "never"를 의미하지 않습니다. 소스 코드를 보지 않으면 아무것도 내기하지 않을 것입니다.
Guntram Blohm

5
@GuntramBlohm, 절대적으로 맞습니다. 반면에 간단한 테스트가 실패한 경우 때때로 서버에 추가 요청을 보내지 않아도 Ctrl-S가 항상 작동 하지는 않는다는 결론을 내릴 수 있습니다 . 따라서 간단한 테스트는 여전히 가치가 있습니다. 다른 사람이 언급하지 않은 것에 놀랐습니다.
와일드 카드

8

웹 페이지 ( ctrls)를 저장하면 Firefox가 모든 컨텐츠를 두 번째로 가져 옵니까?

Firefox의 개발자 도구를 사용하여 쉽게 테스트 할 수 있습니다 .

  • 도구를 열고 "네트워크"탭을 클릭하십시오.

  • 페이지를 저장하십시오

추가 네트워크 트래픽이 생성되지 않습니다.


50
이 경우 개발자 도구에 의존 할 수 있을지 의심됩니다. 단일 탭의 트래픽 만 표시하며 해당 탭의 컨텍스트에서 다운로드가 실행되고 있다고 생각하지 않습니다. 방문하지 않은 링크의 상황에 맞는 메뉴에서 "다른 이름으로 저장"을 사용하는 것으로 추론하면 네트워크 탭에 표시되지만 그렇지 않습니다.
kapex

@kapex 이해했습니다. 그러나 방문하지 않은 링크에서 다른 이름으로 저장하는 것은이 경우에 발생하지 않습니다.
DavidPostill

5
@kapex 방금 인터넷 연결을 해제했지만 여전히 페이지를 올바르게 저장할 수있었습니다 ...
DavidPostill

11
캐시를 사용하는지 의심하지 않고 개발자 도구를 사용하여이를 증명할 수 있을지 의심됩니다. "다른 이름으로 저장"과 "페이지 저장"은 같은 방식으로 작동하지만 차이가있을 수 있습니다. 여기 또 다른 아이디어가 있습니다. 개발자 도구에서 캐싱을 비활성화하면 ctrl + s를 사용하는 것이 네트워크 탭에 표시되지만 다시는 그렇지 않습니다.
kapex

1
특정 페이지에 연결되지 않은 내부 요청을 포함하여 브라우저의 모든 네트워크 요청을 표시하는 브라우저 도구 상자를 사용해야합니다.
Neil


1

혹시.

CSS에는 @media선택기가 있습니다. CSS는 페이지를 표시하는 데 사용되는 하드웨어 종류 (프린터, 크기가 다른 화면 등)에 따라 다른 정의를 사용할 수 있습니다.

CSS는 이미지 파일 (글 머리 기호 이미지, 배경 이미지)을 직접 요청할 수도 있습니다.

이제 Firefox가 페이지를 표시 할 때 현재 하드웨어에 필요한 것만 다운로드하지만 디스크에 저장할 때 모든 것을 다운로드하면 추가 요청이있을 수 있습니다.

경고:

이것은 실질적으로 유용한 답변의 상반기입니다. 후반은이 시나리오를 테스트하는 것입니다. 불행히도, 나는 시간이 없어서 누군가가 반복 가능한 테스트 결과를보고 할 수 있다면 편집이나 의견을 수락 할 것입니다.


아뇨, 모든 CSS 파일이 다운로드되지 않고 파싱되지 않았습니다 :)
Martijn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.