O IIS 7 / 7.5 304 (não modificado) envolve o disco rígido?

2

Eu estou querendo saber como o IIS (7 / 7.5) funciona em termos de código de resposta 304 ((não modificado). Por exemplo, quando uma imagem é armazenada em cache no lado do cliente (ou seja, um navegador da Web) com o cabeçalho HTTP Last-Modified O IIS precisa realmente verificar se o arquivo de imagem física foi realmente atualizado? Se houver muitas imagens, essa atividade de E / S do disco pode ser o gargalo, mesmo que as imagens estejam sendo armazenadas no cache do cliente. economizar em termos de dados transferidos pela rede, mas não em termos de disco IO do servidor.

A mesma pergunta pode se aplicar ao HTTP ETag. Eu diria que o IIS precisa trabalhar com o 'hash de conteúdo' para que o navegador possa descobrir se deve buscar uma página atualizada ou apenas usar o cache do navegador.

Obrigado.

    
por Jeffrey 11.11.2010 / 05:52

2 respostas

4

O acesso ao disco é realmente necessário, pelo menos para verificar se a imagem existe (ou seja, que um 304, não 404, deve ser enviado).

    
por 11.11.2010 / 10:20
0

Um recorte de w3.org também é válido para o IIS.

If the client has performed a conditional GET request and access is allowed, but the document has not been modified, the server SHOULD respond with this status code. The 304 response MUST NOT contain a message-body, and thus is always terminated by the first empty line after the header fields.

Como o valor do cabeçalho não foi alterado, o IIS não precisa obter o arquivo e, portanto, não deve haver nenhum IO. Se o valor do cabeçalho for inconsistente, haverá um GET e, em seguida, o IO.

EDIT: Adicionando validade do conteúdo

If you have time-sensitive information on your Web site, you can configure settings that will ensure that obsolete information isn't cached by proxies or Web browsers. You can configure Web site content to automatically expire at any time. When content expiration is enabled, the Web browser compares the current date to the expiration date to determine whether to display a cached page or request an updated page from the server. Server-side technology, such as Microsoft ASP.NET can be used to dynamically change the content served. Typically, time-sensitive information is limited to individual files, directories, or Web sites; however, you can also set content expiration for all Web sites on a computer.

O rastreio do Fiddler também ajuda a entender o conceito.

    
por 11.11.2010 / 06:43