Iniciar sessão ou registar-se
  1.  # 41

    João: validação e verificação não são a mesma coisa. Isso são noções básicas da engenharia de software.
    Exemplo com o contexto do fórum.
    Alguém manda construir uma casa.
    Verificação: o resultado está conforme em termos estruturais? Está.
    Validação: construiu-se uma casa ou uma barragem?

    É uma situação com que, amiúde, um tester e um developer são confrontados.

    Um cliente só comunica com um servidor via get ou post. É verdade.
    Mas o cliente pode alterar o conteúdo do get assim como pode alterar o conteúdo do post. Eu estou a fazer nisso uma aplicação que estou a desenvolver para testar uma implementação de um servidor. E estou, por coincidência, a enviar ficheiros por get para verificar se o servidor sabe o que é aquilo e como é que há-de tratar aquela situação. Você quando diz que não é possível está a afirmá-lo tendo em conta que o cliente é dumb e não tem ele próprio nenhuma inteligência. Se for o caso de alguma framework como o zk ou o gwt ou etc já é possível, perfeitamente e sem qualquer tipo de problemas não só enviar um ficheiro para o servidor via GET como é possível (dentro de determinadas circunstâncias) enviar um ficheiro de 200k num num request http que só tem 8k de tamanho máximo!

    Quanto às tags-mãe (não é este o termo correcto, mas não me recordo qual é o termo correcto) o que quero dizer é o seguinte:se por exemplo, embeber uma página html dentro de outra e a página que está embebida tiver erros...a página mãe tem-nos também? Não...é um frame dentro de um frame. O browser interpreta o outer frame e formata-o. De seguida interpreta o inner frame e formata-o. O outer frame continua sem problemas mesmo que o inner frame o tenha. Numa das aplicações que estou a desenvolver tenho isso. Um frame que é embebido dentro de outro frame. E já me aconteceu ter erros no frame embebido e o outer frame ter o html e o resto bem formatado.

    Cumprimentos
  2.  # 42

    Boas,

    Colocado por: Ferraz OliveiraVerificação: o resultado está conforme em termos estruturais? Está.
    Validação: construiu-se uma casa ou uma barragem?


    Como queira, não discuto.
    Aqui o que conta é que têm de se fazer um parser independentemente de qualquer outro passo ou nome.

    Colocado por: Ferraz OliveiraE estou, por coincidência, a enviar ficheiros por get para verificar se o servidor sabe o que é aquilo e como é que há-de tratar aquela situação. Você quando diz que não é possível está a afirmá-lo tendo em conta que o cliente é dumb e não tem ele próprio nenhuma inteligência.


    Não, não está.
    Está a enviar conteúdo de um ficheiro que é completamente diferente.


    Colocado por: Ferraz OliveiraQuanto às tags-mãe (não é este o termo correcto, mas não me recordo qual é o termo correcto) o que quero dizer é o seguinte:se por exemplo, embeber uma página html dentro de outra e a página que está embebida tiver erros...a página mãe tem-nos também? Não...é um frame dentro de um frame. O browser interpreta o outer frame e formata-o. De seguida interpreta o inner frame e formata-o. O outer frame continua sem problemas mesmo que o inner frame o tenha. Numa das aplicações que estou a desenvolver tenho isso. Um frame que é embebido dentro de outro frame. E já me aconteceu ter erros no frame embebido e o outer frame ter o html e o resto bem formatado.


    Ok, está tudo percebido.
    Trabalha para intranet e não para internet, não?
    É que o que acabou de escrever em termos de internet é a coisa mais absurda que se possa fazer, já para intranets pode fazer sentido (embora eu não o ache a opção mais correcta).

    Internet e intranet podem partilhar a tecnologia, mas os conceitos são completamente diferentes.
    Eu trabalho para os dois, embora recentemente mais para intranet, e sei bem a diferença.


    Divirtam-se,
    João Dias e seu gato psicanalista
  3.  # 43

    Não concordo que o facto de ser para uma intranet e para um meio mais restrito permita "baixar a guarda" ou "achanatar" (gosto desta expressão) processos.
    Um utilizador de intranet é como um utilizador da internet embora num meio mais restrito, deve ter as mesmas protecções e cuidados na implementação.

    Quanto aos GET e POSTs, eu gostava realmente de ver enviar 200KB de conteúdo, seja de um ficheiro seja do que for num pedido.

    Como seria o URL? http://servidor/send?file=_comboio_com_200KB_de_ficheiro_por_aqui_fora_

    Não esquecer que um pedido pode ser misto, ou melhor.. o metodo POST pode também passar parâmetros no URL
    Concordam com este comentário: oxelfeR (RIP)
  4.  # 44

    Boas,

    Colocado por: hangasNão concordo que o facto de ser para uma intranet e para um meio mais restrito permita "baixar a guarda" ou "achanatar" (gosto desta expressão) processos.
    Um utilizador de intranet é como um utilizador da internet embora num meio mais restrito, deve ter as mesmas protecções e cuidados na implementação.


    É ligeiramente diferente por vários motivos, assim à sorte, numa intranet:
    - posso obrigar a usar um determinado browser.
    - posso obrigar a utilizar uma determinada resolução de ecrã
    - eu conheço os meus "clientes" e sei do que eles são capazes
    - em alguns casos: não há anónimos, eu sei quem fez o quê
    - a usabilidade é muito (ainda) mais importante que na internet
    - e fundamentalmente em alguns casos: a intranet está "fechada" ao mundo e os "brincalhões" são facilmente descobertos.


    Divirtam-se,
    João Dias e seu gato psicanalista
  5.  # 45

    O parser pode verificar e validar ou pode só verificar!

    Enviar o conteúdo de um ficheiro e enviar um ficheiro não é a mesma coisa? Explique-me lá essa que agora não percebi por favor.

    Nas aplicações que estou a desenvolver neste momento trabalho com uma "mistura" dos dois. Uma aplicação em tudo internet mas que funciona numa intranet!
    Eu não disse que enviar um ficheiro por get não seria absurdo, porque, de facto, é mais que absurdo. Mas se eu usar a palavra que uso para designar isso ainda sou banido daqui :-)))))))))))). Só disse que é possivel fazer. Não disse que faz sentido fazê-lo.

    A minha abordagem aos problemas é um pouco diferente da normal porque desenvolvo aplicações de raíz e normalmente baseadas em conceitos de extensibilidade a escalabilidade modular. Foi por isso que disse que, se fosse eu a pegar num problema desses fazia as coisas de maneira diferente.

    Mas, e sejamos realistas, não vale a pena ter tanto trabalho quando isso acontece uma ou duas vezes e podemos ter acesso a aplicações off-the-shelf que, com meia dúzia de clicks fazem basicamente 90-95% do que queremos.

    Cumprimentos

    Ricardo
  6.  # 46

    Colocado por: hangasNão concordo que o facto de ser para uma intranet e para um meio mais restrito permita "baixar a guarda" ou "achanatar" (gosto desta expressão) processos.
    Um utilizador de intranet é como um utilizador da internet embora num meio mais restrito, deve ter as mesmas protecções e cuidados na implementação.

    Quanto aos GET e POSTs, eu gostava realmente de ver enviar 200KB de conteúdo, seja de um ficheiro seja do que for num pedido.

    Como seria o URL?http://servidor/send?file=_comboio_com_200KB_de_ficheiro_por_aqui_fora_

    Não esquecer que um pedido pode ser misto, ou melhor.. o metodo POST pode também passar parâmetros no URL
    Concordam com este comentário:oxelfer


    Experimente usar huffman num ficheiro de texto ou numa imagem mais ou menos homogénea com 200k e depois diga-me qual a taxa de compressão que consegue. :-)
  7.  # 47

    E se eu quiser enviar um .zip de 200KB ? :)
  8.  # 48

    Colocado por: hangasE se eu quiser enviar um .zip de 200KB ? :)


    Depende do que ainda possa ser comprimido no zip!
    Eu não disse todos os ficheiros. Disse apenas que é possível. É preciso é as condições certas! :-)

    Já agora...não quer ir dar uma ajudita ao Rafael Izidoro. Ele acha que por eu estar num sítio onde não há rotundas venho do espaço! :-)
  9.  # 49

    Boas,

    Colocado por: Ferraz OliveiraEnviar o conteúdo de um ficheiro e enviar um ficheiro não é a mesma coisa? Explique-me lá essa que agora não percebi por favor.


    Claro que não é a mesma coisa!
    O que está a enviar para o servidor é texto, o que depois lhe faz no servidor é completamente indiferente.
    Quando envia um ficheiro o servidor web vê-o com um ficheiro, se envia o conteúdo de um ficheiro, para o servidor não passa de texto.
    Mesmo a nível de servidor o processamento é diferente, se falarmos então em questões de segurança ...
    Um dos maiores "perigos" de um servidor web é precisamente o receber ficheiros, poucas pessoas imaginam o que é possível fazer só com isso.
    Criar ficheiro a partir de valores de um GET então nem se fala.


    Divirtam-se,
    João Dias e seu gato psicanalista
    • hangas
    • 14 dezembro 2011 editado

     # 50

    Colocado por: Ferraz OliveiraJá agora...não quer ir dar uma ajudita ao Rafael Izidoro. Ele acha que por eu estar num sítio onde não há rotundas venho do espaço! :-)


    Eheh já fiz zapping a esse tópico :)

    Edit: Pronto.. deixei lá mais uma coisinha :)
    Estas pessoas agradeceram este comentário: Ferraz Oliveira
  10.  # 51

    Colocado por: hangas

    Eheh já fiz zapping a esse tópico :)

    Edit: Pronto.. deixei lá mais uma coisinha :)
    Estas pessoas agradeceram este comentário:Ferraz Oliveira


    E eu também já lá deixei mais umas coisas!
  11.  # 52

    Colocado por: oxelferBoas,



    Claro que não é a mesma coisa!
    O que está a enviar para o servidor é texto, o que depois lhe faz no servidor é completamente indiferente.
    Quando envia um ficheiro o servidor web vê-o com um ficheiro, se envia o conteúdo de um ficheiro, para o servidor não passa de texto.
    Mesmo a nível de servidor o processamento é diferente, se falarmos então em questões de segurança ...
    Um dos maiores "perigos" de um servidor web é precisamente o receber ficheiros, poucas pessoas imaginam o que é possível fazer só com isso.
    Criar ficheiro a partir de valores de um GET então nem se fala.


    Divirtam-se,
    João Dias e seu gato psicanalista


    Binário/hexa é bytes. Não é human readable, mas é bytes! Texto são bytes! Human readable! É verdade...mas não deixam ser bytes. E como tal...qualquer coisa que se envie para o servidor, na sua essência, são bytes. Human readable ou não...mas são bytes! Se encriptar o conteudo de um ficheiro de texto (ou seja, um conjunto de bytes human-readable) eles passam a ser non-human-readable. Mas continuam a ser bytes!

    Quando envio um ficheiro via post para o servidor ele não vê um ficheiro...vê bytes. Human-readable ou não...mas são bytes! E com um get é exactamente a mesma coisa.

    De qualquer maneira, é possível. Dentro de determinadas condições muito restritas, mas é! Não digo que seja uma coisa inteligente nem disse que o fazia (a não ser para monkey testing) mas que é possível...é! Dentro de determinadas condições muito restritas, mas é! Não devia ser, mas é! Mas não devia ser! Mas é! Mas não devia ser! Mas é!

    eheheheheh

    desculpe João esta série de "Não devia ser mas é!". Não estou, de modo algum, a gozar consigo. É apenas uma tirada como a que têm os gatos com o professor!
  12.  # 53

    Boas,

    Colocado por: Ferraz OliveiraQuando envio um ficheiro via post para o servidor ele não vê um ficheiro...vê bytes. Human-readable ou não...mas são bytes! E com um get é exactamente a mesma coisa.


    Errado!

    Quando envia um ficheiro para o servidor, o servidor vê-o como um ficheiro, e cria-o automaticamente.

    Divirtam-se,
    João Dias e seu gato psicanalista
    • J.C
    • 14 dezembro 2011

     # 54

    Épah!!! Afinal não há só craques das obras, tambem há craques da informática.
    E eu a ve-los passar, looooooooooooll.
  13.  # 55

    João

    O que você envia pelo "fio" é um array de bytes. Se quiser levar ao extremo mesmo o que passa no "fio" são pulsos. o servidor só sabe que é um ficheiro se "lhe dissermos" que é um ficheiro. O que o request contém é um array de bytes formatado de uma determinada maneira. Experimente, num servlet qualquer por exemplo, no método doPost, processar o request e abrir a stream sem ser como um ficheiro. Dá erro? Aposto que não!

    Fica aqui um pedaço de código

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    if (ServletFileUpload.isMultipartContent(req)) {
    //O request tem multipart content
    //Aqui vou dizer ao servidor que o conteúdo que ele vai receber no request é um ficheiro
    } else {
    //O request não tem multipart content. pode ser outra coisa qualquer
    }
    }
    }
  14.  # 56

    JC: eu não sou, de modo nenhum, craque da informática.
    Até porque a minha formação académica é outra...pouco percebo de informática! Aliás...posso dizer que não percebo nada!
    Toda esta minha verborreia vem de livros e sites online. Eu limito-me a ir buscar coisas daqui e dacoli! :-)
  15.  # 57

    Boas,

    Colocado por: Ferraz OliveiraFica aqui um pedaço de código


    Só podia, enfim, passando à frente.

    Está mais uma vez errado:
    A um servidor web não precisa de dizer (programar) que vai receber um ficheiro, ele detecta que foi enviado um ficheiro e cria-o automaticamente.

    Um ficheiro é um conjunto de informação e não somente o seu conteúdo, um servidor web processa-os todos. Como o ferraz faz, além do conteúdo do ficheiro precisa de enviar outra informação e depois processá-la e criar o ficheiro no servidor, e a isto não podemos chamar enviar um ficheiro para um servidor.

    Colocado por: Ferraz OliveiraToda esta minha verborreia vem de livros e sites online. Eu limito-me a ir buscar coisas daqui e dacoli! :-)


    Nenhum livro lhe diz que pode enviar um ficheiro por GET.
    É um standard desde o início desta coisita chamada html.
    Consegue criar um ficheiro no servidor a partir de uma chamada GET? Sim, mas não enviou nenhum ficheiro para o servidor, e a prova é que têm de o criar "à pata", ao contrário num verdadeiro envio em que o ficheiro é criado pelo servidor.


    Divirtam-se,
    João Dias e seu gato psicanalista
  16.  # 58

    Boas,

    Colocado por: oxelferQuando envia um ficheiro para o servidor, o servidor vê-o como um ficheiro, e cria-o automaticamente.


    Mas discorda de quê?

    Quando enviamos um ficheiro para o servidor com um formulário POST e method multipart o servidor não cria o ficheiro?

    Divirtam-se,
    João Dias e seu gato psicanalista
  17.  # 59

    Boas,

    Colocado por: Ferraz OliveiraO que você envia pelo "fio" é um array de bytes. Se quiser levar ao extremo mesmo o que passa no "fio" são pulsos. o servidor só sabe que é um ficheiro se "lhe dissermos" que é um ficheiro.


    Errado!!!

    Um servidor web sabe que lhe é enviado um ficheiro.
    Se não sabe é porque não é um servidor web, ou está mal configurado.
    Qualquer servidor web quando recebe um ficheiro cria-o numa pasta temporária que depois podermos mover (e não criar) para outra pasta.

    Divirtam-se,
    João Dias e seu gato psicanalista
  18.  # 60

    Acho que o que João quer dizer é que um servidor HTTP aceita um ficheiro propriamente dito,
    directamente e sem qualquer aplicação. Tal pode ser feito com o metodo PUT, nem GET nem POST, PUT

    Funciona exactamente como o GET.. só que ao contrário.

    Normalmente não está activado nos servidores HTTP por causa da implicações de segurança obvias.
 
0.0216 seg. NEW