Почему файл запрашивается через https после того, как он уже был получен через http? - PullRequest
1 голос
/ 01 апреля 2010

Я пытаюсь немного лучше понять Http / Https и, возможно, какие заголовки я отправляю клиентам.

Должен ли клиент повторно выбирать тот же файл в Https, если он уже был получен в Http, или мне нужно отправлять специальные заголовки?

Ну, причина, по которой файл обслуживается через http / https, заключается в том, что это просто баннер. Когда пользователь переходит на защищенную страницу, баннер все еще находится в этом конкретном шаблоне. Как только пользователь получает файл через Https, файл кэшируется, как и ожидалось.

Walter

Ответы [ 3 ]

1 голос
/ 01 апреля 2010

https считается «доменом», отличным от http, поэтому, если вы отправляете файл клиенту через соединение http, переключитесь на https (даже если вы ничего не измените), браузер по-прежнему запрашивать файл еще раз - как если бы файл не был в кеше. Это так же, как если бы вы запросили http://www.example1.com/file.txt, а затем http://www.example2.com/file.txt, это может быть «тот же» файл, но браузер не знает, и поэтому он должен извлечь его во второй раз.

Однако, как только он будет запрошен через https, он будет кешироваться как обычно.

1 голос
/ 01 апреля 2010

Вам не нужно извлекать файл снова (и определенно не следует).

HTTPS - это HTTP в сочетании с SSL / TLS. Он создает безопасное соединение, которое может помочь предотвратить подслушивание и атаки человека посередине.

Вам не нужно извлекать его снова по безопасному каналу - содержимое будет одинаковым независимо от того, извлечено ли оно через зашифрованный канал или нет.

Если вы во второй раз извлекаете контент по защищенному каналу, кто-то мог бы еще «прослушать» в первый раз и увидеть полученные вами данные. Акт извлечения, если второй раз никак не связан с первым разом.

Если вам требуется дополнительная безопасность HTTPS, не извлекайте файл через незашифрованный HTTP вообще, так как он не будет безопасным и, следовательно, не защищенным.

Нет необходимости выполнять HTTP, а затем HTTPS-запрос, просто выполните один HTTPS.

0 голосов
/ 01 апреля 2010

Веб-сайт может доставлять разные версии файла через HTTP и HTTPS, поэтому браузер должен рассматривать их как отдельные.

Весь контент кэшируется по URL. Поскольку URL-адрес содержит протокол, для версии файла HTTP и HTTPS будут отдельные записи кэша.

Способ избежать этого - всегда предоставлять HTTPS-версию файла. Вы не можете использовать HTTP-версию защищенной страницы или сталкиваетесь с предупреждением о смешанном контенте в IE:

http://blog.httpwatch.com/2009/04/23/fixing-the-ie-8-warning-do-you-want-to-view-only-the-webpage-content-that-was-delivered-securely/

...