Friday 17 November 2017

Opções binárias do php mime


Um tipo MIME para arquivos. php Ao definir algumas propriedades svn no trabalho, nós nos perguntamos sobre o tipo MIME correto para arquivos. php. Olhando ao redor nas várias listas mágicas de detecção do tipo MIME em nossas máquinas unix e na lista oficial do tipo MIA do IANA. As opções que surgiram foram: MIME type rulesx200B Como não existe um tipo MIME oficial registrado na IANA, apenas um tipo de extensão (prefixo x) pode ser usado - o que significa que text / php e application / php não são adequados: Qualquer O tipo de arquivo não registrado deve ser listado com um x-. Como na aplicação / x-foo (RFC2045 5.1), ou um x. . Como na aplicação / x. foo (RFC4288 4.3). Qualquer tipo não x-prefixado deve ser registrado com IANA e listado no endereço acima. Qualquer outro comportamento é uma violação de padrões MIME Linux distributionsx200B Ubuntus magic MIME banco de dados - usado pelo comando de arquivo - cuspe texto / x-php. O pacote mime-support do Debians, também enviado pelo Ubuntu, lista application / x-httpd-php para. php e application / x-httpd-php-source para arquivos. phps em /etc/mime. types. Estes dois tipos são - em meus olhos - mais para o uso interno de Apache / web server desde que o PHP não é somente útil dentro de um daemon do HTTP. IANA considerationsx200B O que resta são text / x-php e application / x-php. Eu pessoalmente prefiro texto / para o usuário legível arquivos de texto simples, razão pela qual eu era cético sobre o aplicativo / x-php no início. Então eu vi que em 2006, IANA oficialmente atribuído application / javascript para arquivos de código JavaScript - e não texto / javascript. O RFC afirma: O uso do texto de nível superior tipo para este tipo de conteúdo é conhecido por ser problemático. - mas deixa de indicar por que isso é assim. Eu acho que isso é porque os problemas de segurança surgem desde navegadores tentar exibir cada tipo de texto / MIME como HTML. Um raciocínio semelhante foi usado ao aplicar para o tipo JSON MIME que foi oficialmente atribuído no RFC 4627. Quando perguntado sobre por que não texto / json, Crockford parece ter dito JSON não é realmente javascript nem texto e também IANA foi mais provável a mão Aplicação / do que texto /. Outros idiomasx200B Ao analisar os tipos de texto oficialmente atribuídos fica claro que não há um único tipo de arquivo de fonte de linguagem de programação no clube. (HTML é, como o nome implica, uma marcação e não uma linguagem de programação - razão pela qual texto / html não conta.) A lista de aplicativos / tipos, por outro lado, contém tipos como application / ecmascript e application / javascript. Ambas as linguagens de programação. Além disso, mesmo o Debian coloca várias linguagens de programação no grupo de aplicativos: application / x-ruby. Aplicação / x-sh e aplicação / x-tcl. Downsidesx200B Usando application / x-php como tipo MIME para arquivos. php não é sem dor. Um tipo começando com texto / indica que o conteúdo do arquivo é legível por humanos. Eu posso abri-lo e obter uma aderência do que está acontecendo dentro, mesmo se eu não entendo tudo quando eu não sei o idioma específico do arquivo está dentro Posso usar utilitários de texto nele: cat. Grep Sed. Diff - o nome dele. Não deve ser eu mesmo que usa as ferramentas que pode ser um aplicativo ou um script de shell que eu escrevi que detecta Im trabalhando com um arquivo de texto e usar as ferramentas adequadas. Arquivos com um tipo começando com aplicação / por outro lado pode ser confiável para ser legível por máquina apenas. Usar o aplicativo / java-vm para arquivos. class é totalmente bom, pois apenas um computador pode lê-lo - assim como application / zip e application / vnd. oasis. opendocument. spreadsheet. Uma ferramenta que falha mal com application / x-php é o svn acima mencionado. Ele detecta arquivos de texto como eu descrevi, usando a parte de mídia de tipos MIME. Definir o tipo MIME de um arquivo. php para application / x-php leva ao problema de que ele manipula os arquivos PHP como binários, não diferindo - tornando diffs em projetos PHP inutilizáveis. Tivemos que voltar ao texto / x-php em nossos repositórios svn. O mesmo problema surge ao usar o tipo de aplicativo oficial / javascript. O relatório de bug associado sugere colocar um número de aplicação / tipos sobre esta é uma lista de arquivos de texto. E exatamente isso é o problema: Como um programador deve detectar se um arquivo é legível por humanos e pode ser exibido Com IANA ditando realidades que derivam em direção a aplicação / tipos, o tipo MIME não é mais nenhum indicador. Conclusão x200B Colocar linguagens de programação sob o grupo de aplicação tem significância estatística e também é apoiado por decisões anteriores da IANA. Portanto, parece inevitável usar o application / x-php como tipo MIME para arquivos. php - mas isso torna a vida dos desenvolvedores mais difícil.

No comments:

Post a Comment