examinando cabeçalhos http em shell scripts

2

Como escrevo um script que envia uma solicitação get a uma página da Web e retorna cabeçalhos HTTP bem formatados?

    
por deadprogrammer 22.05.2009 / 00:07

6 respostas

1

tente este hack desagradável:

wget -O - -o /dev/null --save-headers http://google.com | \
awk 'BEGIN{skip=0}{ if (($0)=="\r") {skip=1;}; if (skip==0) print $0 }'
    
por 22.05.2009 / 00:23
3

Uma opção pode ser usar o curl com a opção --dump-header.

    
por 22.05.2009 / 00:36
2

Existem vários módulos em vários idiomas diferentes que recuperam cabeçalhos HTTP para você.

etc, etc.

    
por 22.05.2009 / 00:20
1
O

curl tem suporte para visualizar os cabeçalhos quando você está baixando ou você pode usar a opção -I para salvar os cabeçalhos em um arquivo.

    
por 11.06.2009 / 14:07
0

Se você quiser apenas visualizar os cabeçalhos .. (Não programaticamente) use apenas o plugin [live headers] [1] para o mozilla firefox.

link

    
por 22.05.2009 / 11:51
0

Esta função bash terá um método URL +, ou Server + path + method + port. Se você usar o método "HEAD", ele retornará os cabeçalhos, se você usar GET, ele retornará todos os cabeçalhos e toda a resposta. Suporta https através do openssl.

#!/bin/bash
function httpreq ()
{
    if [ $# -eq 0 ]; then echo -e "httpreq SERVER PATH [GET/HEAD] [PORT]\nOR\nhttpreq URL [GET/HEAD]"; return 1; fi
    if echo $1 | grep -q "://"
    then
        SUNUCU=$(echo $1 |cut -d '/' -f3 | cut -d':' -f1)
        YOL=/$(echo $1 |cut -d '/' -f4-)
        PROTO=$(echo $1 |cut -d '/' -f1)
        METHOD=${2:-GET}
        PORT=$(echo $1| sed -n 's&^.*://.*:\([[:digit:]]*\)/.*&&p')
        if [ -z $PORT ]
        then
            if [ $PROTO == "https:" ]; then PORT=443; else PORT=80; fi
        fi
    else
        SUNUCU=$1
        YOL=$2
        METHOD=${3:-GET}
        PORT=${4:-80}
    fi
    if [ $PROTO == "https:" ];
    then
     echo -e "$METHOD $YOL HTTP/1.1\r\nHOST:$SUNUCU\r\n\r\n" | openssl s_client -quiet -connect $SUNUCU:$PORT
    else
     echo -e "$METHOD $YOL HTTP/1.1\r\nHOST:$SUNUCU\r\n\r\n" | nc $SUNUCU $PORT
    fi
}
    
por 11.06.2009 / 15:22