1 00:00:00,000 --> 00:00:00,200 2 00:00:00,200 --> 00:00:02,280 >> COLUNA 1: Tudo bem, então o que é que você precisa fazer concretamente? 3 00:00:02,280 --> 00:00:04,140 Bem, acontece que há apenas quatro funções 4 00:00:04,140 --> 00:00:06,390 que você precisa para implementar cuja funcionalidade é 5 00:00:06,390 --> 00:00:08,520 inerente ao bom operação do servidor web, 6 00:00:08,520 --> 00:00:10,720 mas cuja totalidade das comportamento é muito estreita 7 00:00:10,720 --> 00:00:13,104 definida, para que possam apenas fazer muito bem uma coisa. 8 00:00:13,104 --> 00:00:15,270 Primeira coisa que você vai a necessidade de fazer é implementar, 9 00:00:15,270 --> 00:00:17,540 acordo com a especificação, a função PROC. 10 00:00:17,540 --> 00:00:20,900 Esta é uma função bastante simples em Ao final, que toma como um argumento 11 00:00:20,900 --> 00:00:24,690 qualquer que seja o caminho para o arquivo que o usuário deseja solicitar, 12 00:00:24,690 --> 00:00:28,310 e você precisa responder com a chamado tipo MIME, ou do tipo de conteúdo, 13 00:00:28,310 --> 00:00:29,200 desse arquivo. 14 00:00:29,200 --> 00:00:31,415 Por exemplo, se é um arquivo como, Olá dot 15 00:00:31,415 --> 00:00:37,470 HTML que você vai responder com um MIME tipo de entre aspas HTML barra de texto. 16 00:00:37,470 --> 00:00:40,920 >> Ou se é uma imagem, você pode querer a responder com imagem dot barra 17 00:00:40,920 --> 00:00:42,990 JIFF ou imagem JPEG cortar. 18 00:00:42,990 --> 00:00:46,280 Consulte a especificação para os vários formatos de arquivo que você precisa para detectar. 19 00:00:46,280 --> 00:00:49,760 Mas ele realmente se resume a tomar uma olhar para o caminho, que você é passado, 20 00:00:49,760 --> 00:00:52,870 e olhando para o seu arquivo extensão, os últimos personagens 21 00:00:52,870 --> 00:00:54,297 após o ponto final ou ponto. 22 00:00:54,297 --> 00:00:57,130 Então, vamos deixá-lo para você com alguma das sugestões na especificação 23 00:00:57,130 --> 00:01:00,170 para descobrir exatamente como encontrar que ponto ea extensão do arquivo 24 00:01:00,170 --> 00:01:02,840 de modo que você pode fazer o mapeamento de um para o outro. 25 00:01:02,840 --> 00:01:04,395 >> Em seguida é a função de análise. 26 00:01:04,395 --> 00:01:06,270 Então, este é um pouco mais envolvidos, na medida em que 27 00:01:06,270 --> 00:01:08,590 você precisa levar em que argumento [inaudível], 28 00:01:08,590 --> 00:01:12,030 ele é iterado sobre ele, caráter para o personagem, ou corda por corda, 29 00:01:12,030 --> 00:01:14,660 a fim de certificar-se de que cumpre exatamente 30 00:01:14,660 --> 00:01:19,155 a definição formal de que o primeiro linha de solicitação, de acordo com a especificação. 31 00:01:19,155 --> 00:01:23,930 E você precisa para carregar em absoluto caminho que subcadeia, que representa 32 00:01:23,930 --> 00:01:26,550 algo como, corte Olá dot HTML. 33 00:01:26,550 --> 00:01:29,960 Enquanto isso, opcionalmente, depois disso caminho pode ser um ponto de interrogação 34 00:01:29,960 --> 00:01:32,240 e, em seguida, uma seqüência de consulta como, q é igual a gatos, 35 00:01:32,240 --> 00:01:35,310 ou q é igual gatos ampersand, e em seguida, um outro par de valor de chave. 36 00:01:35,310 --> 00:01:38,380 Então você está indo a necessidade de passar por cima desses personagens, 37 00:01:38,380 --> 00:01:41,150 assim, até o primeiro espaço, em ordem 38 00:01:41,150 --> 00:01:47,327 para criar uma seqüência de caracteres que armazena dentro dela a própria string de consulta. 39 00:01:47,327 --> 00:01:49,410 Em seguida, você vai implementar a função de carga. 40 00:01:49,410 --> 00:01:52,493 Então não é que, se você olhar através o código-fonte, como a especificação dirige, 41 00:01:52,493 --> 00:01:54,210 a função de carga é usado em dois lugares. 42 00:01:54,210 --> 00:01:57,420 Ou é usado para carregar o saída do intérprete PHP. 43 00:01:57,420 --> 00:01:59,700 E nós escrevemos todos o código de manipulação de PHP, 44 00:01:59,700 --> 00:02:01,840 mas ele precisa utilizar uma função chamada 45 00:02:01,840 --> 00:02:06,350 carga, que lê essencialmente todo o bytes de saída do interpretador do PHP 46 00:02:06,350 --> 00:02:08,430 em uma grande variedade. 47 00:02:08,430 --> 00:02:10,850 >> Essa mesma carga função também é utilizado para carregar 48 00:02:10,850 --> 00:02:15,200 na memória de todos os bytes de um ficheiro como, um JIFF, ou um JPEG, HTML ou dot 49 00:02:15,200 --> 00:02:16,630 arquivo, que o usuário tenha solicitado. 50 00:02:16,630 --> 00:02:21,060 Então você vai precisar usar alguns truques e ferramentas de conjunto de problemas 4 em arquivo IO, 51 00:02:21,060 --> 00:02:24,410 mas você deve achar que relativamente familiar e de uma forma agradável, espero, 52 00:02:24,410 --> 00:02:28,110 de amarrar juntos o mais recente web coisas com o arquivo IO material mais antigo. 53 00:02:28,110 --> 00:02:31,490 >> Finalmente, nos índices função, tudo que você precisa fazer 54 00:02:31,490 --> 00:02:34,570 é decidir se há ou não existe algum arquivo de forma eficaz 55 00:02:34,570 --> 00:02:40,430 HTML chamado índice ponto, ou índice dot PHP, dentro do diretório, cujo caminho você 56 00:02:40,430 --> 00:02:41,220 são passado. 57 00:02:41,220 --> 00:02:44,360 O lado positivo desta significa que se o usuário faz solicitar um diretório, 58 00:02:44,360 --> 00:02:47,318 nós não estamos indo só para mostrar- ela o conteúdo desse diretório, 59 00:02:47,318 --> 00:02:51,342 nós vamos mostrar-lhes literalmente índice dot HTML, ou índice dot PHP, por padrão. 60 00:02:51,342 --> 00:02:54,300 Mas vai ser deixado para você descobrir, usando algumas das sugestões 61 00:02:54,300 --> 00:02:56,350 no código-fonte, que já te dei, 62 00:02:56,350 --> 00:02:59,880 como você pode realmente verificar se um determinado arquivo existe 63 00:02:59,880 --> 00:03:03,380 no diretório atual, de modo que você pode retornar a resposta correta. 64 00:03:03,380 --> 00:03:05,800 >> Então, no final há relativamente poucos bytes 65 00:03:05,800 --> 00:03:09,155 que você precisa tomar para fora do conjunto de problemas para implementar o servidor de 66 00:03:09,155 --> 00:03:10,210 funcionalidade incompleta. 67 00:03:10,210 --> 00:03:13,180 Mas definitivamente certifique-se de envolvê- sua mente em torno de como grande parte do código 68 00:03:13,180 --> 00:03:15,013 como você pode, tendo conforto em que você não 69 00:03:15,013 --> 00:03:18,160 precisam entender toda a menor nível de código de rede, todos 70 00:03:18,160 --> 00:03:19,834 do menor nível de código arquivo IO. 71 00:03:19,834 --> 00:03:21,750 Realmente, o que estamos fazendo com este conjunto de problemas 72 00:03:21,750 --> 00:03:25,670 se sintetizar o problema vários passado conjuntos, introduzindo um pouco de WebLogic, 73 00:03:25,670 --> 00:03:28,802 e conceitos de rede, de modo que, finalmente, você 74 00:03:28,802 --> 00:03:31,760 construir algo que é realmente muito interessante, realmente muito poderoso, 75 00:03:31,760 --> 00:03:33,468 mas ainda usando o mesmos blocos de construção, 76 00:03:33,468 --> 00:03:36,310 que temos vindo a utilizar durante algum tempo.