Que métodos HTTP o servidor geralmente usa em uma resposta (se houver) [fechado]

2

Eu entendo como são as solicitações HTTP do lado do cliente, mas o que me deixa curioso é quais métodos o servidor usa para exibir páginas?

Cliente:

GET /index.html HTTP/1.1
Host foo.com:80

Servidor:

Does it perform an HTTP PUT of index.html ?  If not, then what?  Are HTTP methods used both ways?

Se a resposta não usa métodos HTTP, então é simplesmente um pacote TCP (ou vários) que contém a carga útil? Existe alguma informação específica do protocolo HTTP nos pacotes?

    
por usedTobeaMember 04.07.2014 / 18:00

3 respostas

2

Uma solicitação HTTP pode ser enviada usando um dos seguintes métodos:

> Get ()

Emite a solicitação HTTP GET. Esse método faz com que o servidor da web retorne a página solicitada.

> Head ()

Emite a solicitação HTTP HEAD. Esse método faz com que o servidor da web retorne apenas os cabeçalhos da resposta e nenhum do corpo.

> Post ()

Emite a solicitação HTTP POST. Use esse método para enviar dados para o servidor da Web, como os resultados de um formulário, ou faça o upload de um arquivo.

> Coloque ()

Emite a solicitação HTTP PUT. Use este método para fazer upload de dados para o servidor da web. Pedidos PUT não são comuns.

> Enviar ()

Envia o tipo especificado de solicitação HTTP para o servidor.

Após receber e interpretar uma mensagem de solicitação, um servidor responde com uma mensagem de resposta HTTP.

   Response      = Status-Line               ; Section 6.1
                   *(( general-header        ; Section 4.5
                    | response-header        ; Section 6.2
                    | entity-header ) CRLF)  ; Section 7.1
                   CRLF
                   [ message-body ]          ; Section 7.2

As informações de resposta foram citadas no seguinte site: W3.org

    
por 04.07.2014 / 18:49
1

Eu responderei minha própria pergunta. Não, os métodos HTTP são usados apenas nos cabeçalhos de solicitação. Códigos de status são usados em cabeçalhos de resposta. Eu sei que eu vi cabeçalhos em ambos os lados e deveria ter sido capaz de dizer isso sem procurar, mas eu não tinha certeza. O benefício de fazer uma pergunta como essa (que pode ser facilmente pesquisada) em um fórum útil é que às vezes você aprende algo adicional ou obtém alguma perspectiva que ajuda a aprofundar sua compreensão.

    
por 04.07.2014 / 18:32
1

Primeiro

Sua solicitação precisa corresponder ao protocolo HTTP.

IE seu cabeçalho precisa ser terminado por uma linha vazia:

GET /index.html HTTP/1.1
Host foo.com:80
 

Nota: Cada linha tem que ser iniciada por CRLF , não apenas LF nem somente CR :

00000000  47 45 54 20 2f 20 48 54  54 50 2f 31 2e 30 5c 72  |GET / HTTP/1.0\r|
00000010  5c 6e 48 6f 73 74 3a 20  66 6f 6f 2e 63 6f 6d 3a  |\nHost: foo.com:|
00000020  38 30 5c 72 5c 6e 5c 72  5c 6e 0a                 |80\r\n\r\n.|

A resposta do servidor pode corresponder à mesma forma:

Header - Empty line - Body

Você pode descartar o cabeçalho usando sed , por exemplo:

nc foo.com 80 <<<$'GET / HTTP/1.0\r\nHost: foo.com:80\r\n\r' |
    sed '1,/^\r\?$/d' > index-of-foo.com.html

Ou envie apenas o cabeçalho:

nc foo.com 80 <<<$'GET / HTTP/1.0\r\nHost: foo.com:80\r\n\r' |
    sed '/^\r\?$/q'

Você pode encontrar todas as suas respostas na Internet:

Primeiro documento referencial: em w3.org

Ou na Wikipédia: link

Que método para responder?

O cabeçalho da resposta contém todas as informações necessárias para entender como lidar com a resposta.

Essencialmente, existe um Tipo de Conteúdo , necessário para dizer ao seu navegador o que fazer com isso.

O servidor pode ter que processar algumas coisas para construir sua resposta, mas entre o servidor e o cliente, há apenas uma conexão TCP (estúpida).

Não há nada que o servidor possa pedir ao cliente para fazer ...

Exceto construções interativas entre pilha de processamento de alto nível como javascript , html5 ( css ), java < em> flash ou outro dilbertlight .

    
por 04.07.2014 / 18:17

Tags