Shell使用curl获取网站响应头

2020年02月3日

这是使用curl来获取网站响应头的方法

curl -s -v -H "Mtt: xxx" -- https://y.qq.com/n/yqq/song/000YU69H3N55rZ.html
[RucLinux@localhost ~]$ curl -s -v -H "Mtt: xxx" -- https://y.qq.com/n/yqq/song/000YU69H3N55rZ.html >> din.txt
* About to connect() to y.qq.com port 443 (#0)
*   Trying 113.96.83.67... connected
* Connected to y.qq.com (113.96.83.67) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* 	subject: CN=*.y.qq.com,O=Tencent Technology (Shenzhen) Company Limited,L=shenzhen,ST=guangdong,C=CN
* 	start date: 11月 29 06:50:46 2019 GMT
* 	expire date: 11月 29 06:50:46 2020 GMT
* 	common name: *.y.qq.com
* 	issuer: CN=GlobalSign Organization Validation CA - SHA256 - G2,O=GlobalSign nv-sa,C=BE
> GET /n/yqq/song/000YU69H3N55rZ.html HTTP/1.1
> User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.44 zlib/1.2.11 libidn/1.18 libssh2/1.4.2
> Host: y.qq.com
> Accept: */*
> Mtt: xxx
> 
< HTTP/1.1 200 OK
< Server: NWSs
< Date: Mon, 03 Feb 2020 11:34:05 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Cache-Control: max-age=0
< X-Verify-Code: 933541eb3f9b9254310bddb1c8e6441d
< X-NWS-UUID-VERIFY: ed2fad3a596d0394f533dad9032d4eb8
< Vary: Accept-Encoding
< X-Powered-By: TSW/Node.js
< Cache-Offline: false
< Content-Security-Policy: script-src https://m.12530.com http://m.12530.com https://*.qq.com http://*.qq.com https://*.gtimg.cn http://*.gtimg.cn https://*.url.cn http://*.url.cn https://*.tenpay.com http://*.tenpay.com https://*.qpic.cn http://*.qpic.cn https://*.idqqimg.com http://*.idqqimg.com https://*.gtimg.com http://*.gtimg.com https://*.soso.com http://*.soso.com https://*.jd.com http://*.jd.com http://*.tencent.com https://*.tencent.com 'unsafe-inline' 'unsafe-eval'; report-uri https://stat.y.qq.com/monitor/report_csp
< X-NWS-LOG-UUID: a734109b-bcd5-4830-a233-de51b28ca419
< X-Daa-Tunnel: hop_count=1
< X-Server-Ip: 113.96.83.27
< Access-Control-Expose-Headers: X-Server-Ip, x-server-ip
< 
{ [data not shown]
* Connection #0 to host y.qq.com left intact
* Closing connection #0
[RucLinux@localhost ~]$ 

[RucLinux@localhost ~]$ curl --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
    --anyauth       Pick "any" authentication method (H)
 -a/--append        Append to target file when uploading (F/SFTP)
    --basic         Use HTTP Basic Authentication (H)
    --cacert <file> CA certificate to verify peer against (SSL)
    --capath <directory> CA directory to verify peer against (SSL)
 -E/--cert <cert[:passwd]> Client certificate file and password (SSL)
    --cert-type <type> Certificate file type (DER/PEM/ENG) (SSL)
    --ciphers <list> SSL ciphers to use (SSL)
    --compressed    Request compressed response (using deflate or gzip)
 -K/--config <file> Specify which config file to read
    --connect-timeout <seconds> Maximum time allowed for connection
 -C/--continue-at <offset> Resumed transfer offset
 -b/--cookie <name=string/file> Cookie string or file to read cookies from (H)
 -c/--cookie-jar <file> Write cookies to this file after operation (H)
    --create-dirs   Create necessary local directory hierarchy
    --crlf          Convert LF to CRLF in upload
    --crlfile </file><file> Get a CRL list in PEM format from the given file
 -d/--data <data>   HTTP POST data (H)
    --data-ascii </data><data>  HTTP POST ASCII data (H)
    --data-binary </data><data> HTTP POST binary data (H)
    --data-urlencode <name=data/name@filename> HTTP POST data url encoded (H)
    --delegation STRING GSS-API delegation permission
    --digest        Use HTTP Digest Authentication (H)
    --disable-eprt  Inhibit using EPRT or LPRT (F)
    --disable-epsv  Inhibit using EPSV (F)
 -D/--dump-header <file> Write the headers to this file
    --egd-file </file><file> EGD socket path for random data (SSL)
    --engine <eng>  Crypto engine to use (SSL). "--engine list" for list
 -f/--fail          Fail silently (no output at all) on HTTP errors (H)
 -F/--form <name=content> Specify HTTP multipart POST data (H)
    --form-string <name=string> Specify HTTP multipart POST data (H)
    --ftp-account <data> Account data to send when requested by server (F)
    --ftp-alternative-to-user <cmd> String to replace "USER [name]" (F)
    --ftp-create-dirs Create the remote dirs if not present (F)
    --ftp-method [multicwd/nocwd/singlecwd] Control CWD usage (F)
    --ftp-pasv      Use PASV/EPSV instead of PORT (F)
 -P/--ftp-port <address> Use PORT with address instead of PASV (F)
    --ftp-skip-pasv-ip Skip the IP address for PASV (F)
    --ftp-ssl       Try SSL/TLS for ftp transfer (F)
    --ftp-ssl-ccc   Send CCC after authenticating (F)
    --ftp-ssl-ccc-mode [active/passive] Set CCC mode (F)
    --ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F)
    --ftp-ssl-reqd  Require SSL/TLS for ftp transfer (F)
 -G/--get           Send the -d data with a HTTP GET (H)
 -g/--globoff       Disable URL sequences and ranges using {} and []
 -H/--header <line> Custom header to pass to server (H)
 -I/--head          Show document info only
 -h/--help          This help text
    --hostpubmd5 <md5> Hex encoded MD5 string of the host public key. (SSH)
 -0/--http1.0       Use HTTP 1.0 (H)
    --ignore-content-length  Ignore the HTTP Content-Length header
 -i/--include       Include protocol headers in the output (H/F)
 -k/--insecure      Allow connections to SSL sites without certs (H)
    --interface <interface> Specify network interface/address to use
 -4/--ipv4          Resolve name to IPv4 address
 -6/--ipv6          Resolve name to IPv6 address
 -j/--junk-session-cookies Ignore session cookies read from file (H)
    --keepalive-time <seconds> Interval between keepalive probes
    --key <key>     Private key file name (SSL/SSH)
    --key-type <type> Private key file type (DER/PEM/ENG) (SSL)
    --krb <level>   Enable Kerberos with specified security level (F)
    --libcurl <file> Dump libcurl equivalent code of this command line
    --limit-rate <rate> Limit transfer speed to this rate
 -l/--list-only     List only names of an FTP directory (F)
    --local-port <num>[-num] Force use of these local port numbers
 -L/--location      Follow Location: hints (H)
    --location-trusted Follow Location: and send auth to other hosts (H)
 -M/--manual        Display the full manual
    --max-filesize <bytes> Maximum file size to download (H/F)
    --max-redirs <num> Maximum number of redirects allowed (H)
 -m/--max-time <seconds> Maximum time allowed for the transfer
    --negotiate     Use HTTP Negotiate Authentication (H)
 -n/--netrc         Must read .netrc for user name and password
    --netrc-optional Use either .netrc or URL; overrides -n
 -N/--no-buffer     Disable buffering of the output stream
    --no-keepalive  Disable keepalive use on the connection
    --no-sessionid  Disable SSL session-ID reusing (SSL)
    --noproxy       Comma-separated list of hosts which do not use proxy
    --ntlm          Use HTTP NTLM authentication (H)
 -o/--output <file> Write output to </file><file> instead of stdout
    --pass  <pass>  Pass phrase for the private key (SSL/SSH)
    --post301       Do not switch to GET after following a 301 redirect (H)
    --post302       Do not switch to GET after following a 302 redirect (H)
 -#/--progress-bar  Display transfer progress as a progress bar
 -x/--proxy <host[:port]> Use HTTP proxy on given port
    --proxy-anyauth Pick "any" proxy authentication method (H)
    --proxy-basic   Use Basic authentication on the proxy (H)
    --proxy-digest  Use Digest authentication on the proxy (H)
    --proxy-negotiate Use Negotiate authentication on the proxy (H)
    --proxy-ntlm    Use NTLM authentication on the proxy (H)
 -U/--proxy-user <user[:password]> Set proxy user and password
    --proxy1.0 <host[:port]> Use HTTP/1.0 proxy on given port
 -p/--proxytunnel   Operate through a HTTP proxy tunnel (using CONNECT)
    --pubkey <key>  Public key file name (SSH)
 -Q/--quote <cmd>   Send command(s) to server before file transfer (F/SFTP)
    --random-file <file> File for reading random data from (SSL)
 -r/--range <range> Retrieve only the bytes within a range
    --raw           Pass HTTP "raw", without any transfer decoding (H)
 -e/--referer       Referer URL (H)
 -O/--remote-name   Write output to a file named as the remote file
    --remote-name-all Use the remote file name for all URLs
 -R/--remote-time   Set the remote file's time on the local output
 -X/--request <command /> Specify request command to use
    --retry <num>   Retry request </num><num> times if transient problems occur
    --retry-delay <seconds> When retrying, wait this many seconds between each
    --retry-max-time </seconds><seconds> Retry only within this period
 -S/--show-error    Show error. With -s, make curl show errors when they occur
 -s/--silent        Silent mode. Don't output anything
    --socks4 <host[:port]> SOCKS4 proxy on given host + port
    --socks4a <host[:port]> SOCKS4a proxy on given host + port
    --socks5 <host[:port]> SOCKS5 proxy on given host + port
    --socks5-hostname <host[:port]> SOCKS5 proxy, pass host name to proxy
    --socks5-gssapi-service <name> SOCKS5 proxy service name for gssapi
    --socks5-gssapi-nec  Compatibility with NEC SOCKS5 server
 -Y/--speed-limit   Stop transfer if below speed-limit for 'speed-time' secs
 -y/--speed-time    Time needed to trig speed-limit abort. Defaults to 30
 -2/--sslv2         Use SSLv2 (SSL)
 -3/--sslv3         Use SSLv3 (SSL)
    --stderr <file> Where to redirect stderr. - means stdout
    --tcp-nodelay   Use the TCP_NODELAY option
 -t/--telnet-option <OPT=val> Set telnet option
 -z/--time-cond <time> Transfer based on a time condition
 -1/--tlsv1         Use => TLSv1 (SSL)
    --tlsv1.0       Use TLSv1.0 (SSL)
    --tlsv1.1       Use TLSv1.1 (SSL)
    --tlsv1.2       Use TLSv1.2 (SSL)
    --trace <file>  Write a debug trace to the given file
    --trace-ascii </file><file> Like --trace but without the hex output
    --trace-time    Add time stamps to trace/verbose output
 -T/--upload-file </file><file> Transfer </file><file> to remote site
    --url <url>     Set URL to work with
 -B/--use-ascii     Use ASCII/text transfer
 -u/--user <user[:password]> Set server user and password
 -A/--user-agent <string> User-Agent to send to server (H)
 -v/--verbose       Make the operation more talkative
 -V/--version       Show version number and quit
 -w/--write-out <format> What to output after completion
 -q                 If used as the first parameter disables .curlrc
[RucLinux@localhost ~]$ 

</format></string></url></file></time></file></name></seconds></num></range></file></cmd></key></pass></file></seconds></num></bytes></num></rate></file></level></type></key></seconds></interface></md5></line></address></cmd></data></eng></file></data></file></offset></seconds></file></list></type></directory></file></url>


sicnature ---------------------------------------------------------------------
Your current IP address is: 3.235.31.131
Your IP address location: 美国 弗吉尼亚州阿什本amazon数据中心
Your IP address country and region: 美国 美国
Your current browser is:
Your current system is:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://www.myzhenai.com.cn/post/3138.html

没有评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注