Obtém saída bruta do servidor da web

1

Para pesquisa, estou procurando obter a saída bruta real que o apache envia ao responder a uma solicitação, incluindo todos os dados, cabeçalhos e o html. Como eu iria sobre isso? Eu tentei:

wget --output-document=response.txt -S "http://thewebsiteinquestion.com"

Isso me mostra que os cabeçalhos de resposta estão todos bem organizados e enviam o HTML para o arquivo response.txt, mas eu realmente quero ver o texto bruto e como isso é formatado.

    
por beingalex 20.09.2012 / 18:49

2 respostas

4

Eu imagino que isso poderia ser feito com o wget, mas eu sei como fazer isso com o curl. yum install curl ou o que for para o seu SO, se você ainda não o tiver instalado:

curl -vv http://thewebsiteinquestion.com

A saída mostrará a resposta bruta do servidor, incluindo os cabeçalhos e o corpo, como você queria. Isso é puramente uma coisa de preferência, mas eu geralmente achei curl mais fácil e intuitivo de usar para testes e desenvolvimento do que wget .

Às vezes, também é útil usar telnet e falar HTTP bruto. Como um sysadm / dev eu acho isso inestimável. Por exemplo:

$ telnet google.com 80
Trying 74.125.239.0...
Connected to google.com.
Escape character is '^]'.
GET / HTTP/1.0
Host: google.com

HTTP/1.0 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Thu, 20 Sep 2012 22:31:32 
... the rest ommitted

Tudo o que você precisa digitar manualmente é as linhas GET / HTTP/1.0 e Host: google.com . Em seguida, pressione enter duas vezes. Dessa forma, você realmente verá a resposta completa do servidor HTTP remoto, sem nada atrapalhar. Enquanto você brinca com ele, aprende melhor como o HTTP funciona, e nunca se confundirá quando os redirecionamentos estão acontecendo (como você pode ver acima, via 301 status HTTP e Location header), e sua ferramenta (navegador , wget, curl) está lidando com eles automaticamente para você.

Editar : como passar parâmetros GET usando telnet . Basta adicioná-los ao caminho que você está obtendo quando fala HTTP:

$ telnet thewebsite.co.uk 80
Trying 95.131.67.221...
Connected to thewebsite.co.uk.
Escape character is '^]'.
GET /?foo=bar HTTP/1.0
Host: thewebsite.co.uk 

HTTP/1.1 200 OK
Date: Fri, 21 Sep 2012 17:43:27 GMT
Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Last-Modified: Mon, 01 Jun 2009 20:10
...

Para fazer uma consulta POST, você precisa calcular o tamanho dos dados enviados e colocá-los em Content-Length , e isso se parece com:

$ telnet www.yahoo.com 80
Trying 72.30.38.140...
Connected to ds-any-fp3-real.wa1.b.yahoo.com.
Escape character is '^]'.
POST / HTTP/1.0
User-Agent: telnet
Host: www.yahoo.com
Accept: */*
Content-Length: 8
Content-Type: application/x-www-form-urlencoded

p=foobar
HTTP/1.0 200 OK
Date: Fri, 21 Sep 2012 17:57:35 GMT
P3P: policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
Cache-Control: private
X-Frame-Options: SAMEORIGIN
...
    
por 21.09.2012 / 00:37
1

Adicione a opção --save-headers à linha de comando wget .

    
por 21.09.2012 / 00:39

Tags