I have REST application with Spring OAuth2 authorization. I test it with FitNesse RestFixture test (I added token from curl response and last GET operation works successfully):
| Table:smartrics.rest.fitnesse.fixture.RestFixture | http://10.76.243.103:8080 |
| GET | /<root>/version | | | 2.2.1 |
| setBody |grant_type=password&username=test&password=test123&scope=data+compute|
| setHeader |Authorization : Basic dGVzdDo4YmE5MjRjZS0wNThhLTQ3Y2YtOGQ4Mi02ZWY1N2Y4NzdiNmQ=|
| setHeader |Content-Type : application/x-www-form-urlencoded|
| POST | /<oauth-provider>/oauth/token | | | |
| setHeader |Authorization : Bearer fd947659-cf17-4ded-b2e8-698395c201df|
| GET | /<root>/schemas | | | |
And I failed to get access token on POST operation with issue {"error":"unauthorized","error_description":"Full authentication is required to access this resource"}:
| POST | /<oauth-provider>/oauth/token | 401 | <responce> | {"error":"unauthorized","error_description":"Full authentication is required to access this resource"} |
Where responce is:
Server : Apache-Coyote/1.1
X-Content-Type-Options : nosniff
X-XSS-Protection : 1; mode=block
Cache-Control : no-cache, no-store, max-age=0, must-revalidate
Pragma : no-cache
Expires : 0
X-Frame-Options : DENY
Cache-Control : no-store
Pragma : no-cache
WWW-Authenticate : Bearer realm="oauth", error="unauthorized", error_description="Full authentication is required to access this resource"
Content-Type : application/json;charset=UTF-8
Transfer-Encoding : chunked
Date : Thu, 27 Nov 2014 11:17:56 GMT
If I perfrom same action with curl utility I got access_token successfully:
curl -X POST -v -u test:8ba924ce-058a-47cf-8d82-6ef57f877b6d --data 'username =test&password=test123&grant_type=password&scope=data+compute' 'http://10.76.24 3.103:8080/parseq/oauth/token' -k
* About to connect() to 10.76.243.103 port 8080 (#0)
* Trying 10.76.243.103...
* Adding handle: conn: 0x4c3388
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x4c3388) send_pipe: 1, recv_pipe: 0
* Connected to 10.76.243.103 (10.76.243.103) port 8080 (#0)
* Server auth using Basic with user 'test'
> POST /parseq/oauth/token HTTP/1.1
> Authorization: Basic dGVzdDo4YmE5MjRjZS0wNThhLTQ3Y2YtOGQ4Mi02ZWY1N2Y4NzdiNmQ=
> User-Agent: curl/7.30.0
> Host: 10.76.243.103:8080
> Accept: */*
> Content-Length: 69
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 69 out of 69 bytes
< HTTP/1.1 200 OK
* Server Apache-Coyote/1.1 is not blacklisted
< Server: Apache-Coyote/1.1
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
< Pragma: no-cache < Expires: 0
< X-Frame-Options: DENY
< Cache-Control: no-store
< Pragma: no-cache
< Content-Type: application/json;charset=UTF-8
< Transfer-Encoding: chunked
< Date: Thu, 27 Nov 2014 09:20:39 GMT
< {"access_token":"fd947659-cf17-4ded-b2e8-698395c201df","token_type":"bearer","re fresh_token":"564aa6ca-0afa-4519-a907-e7027053bb35","expires_in":40317,"scope":" compute data"}
* Connection #0 to host 10.76.243.103 left intact
Can anyone advice me how to debug or fix it?
Thanks In Advance!
I launched tcpdump to check what exactly I send from my curl request (as descibed in Use TCPDUMP to Monitor HTTP Traffic):
sudo tcpdump -A -s 0 'tcp port 8080 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
I launched it on server machine.
I found that curl automatically added Content-Type header:
08:55:30.504594 IP <my client DNS name>.53655 > cherry.http-alt: Flags [P.], seq 1801770313:1801770631, ack 3280862118, win 67, length 318
E..fE.#.q..q
B r
L.g....kd.I....P..C....POST /<oauth provider>/oauth/token HTTP/1.1
Authorization: Basic dGVzdDo4YmE5MjRjZS0wNThhLTQ3Y2YtOGQ4Mi02ZWY1N2Y4NzdiNmQ=
User-Agent: curl/7.30.0
Host: 10.76.243.103:8080
Accept: */*
Content-Length: 69
Content-Type: application/x-www-form-urlencoded
username=test&password=test123&grant_type=password&scope=data+compute
08:55:30.508697 IP cherry.http-alt > <my client DNS name>.53655: Flags [P.], seq 1:563, ack 318, win 237, length 562
E..ZPB#.#...
L.g
B r........kd..P...*...HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Cache-Control: no-store
Pragma: no-cache
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 27 Nov 2014 13:55:30 GMT
ae
{"access_token":"fd947659-cf17-4ded-b2e8-698395c201df","token_type":"bearer","refresh_token":"564aa6ca-0afa-4519-a907-e7027053bb35","expires_in":23826,"scope":"compute data"}
08:55:30.508937 IP cherry.http-alt > <my client DNS name>.53655: Flags [P.], seq 563:568, ack 318, win 237, length 5
Also I've checked what exactly I send from my FitNesse test:
08:33:36.598429 IP 10.76.243.55.39600 > cherry.http-alt: Flags [P.], seq 102:347, ack 335, win 237, options [nop,nop,TS val 859086469 ecr 41658573], length 245
E..)..#.#...
L.7
L.g........r..............
34...{..POST /<oauth provider>/oauth/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Jakarta Commons-HttpClient/3.1
Host: 10.76.243.103:8080
Content-Length: 69
grant_type=password&username=test&password=test123&scope=data+compute
08:33:36.599047 IP cherry.http-alt > 10.76.243.55.39600: Flags [P.], seq 335:974, ack 347, win 235, options [nop,nop,TS val 41658578 ecr 859086469], length 639
And I found that Authorization header is missed in my request from FitNesse. It looks like sequential using of setHeader() methods leads to overwriting of headers. So, I changed my FitNesse test to use setHeaders() method to setup some headers in one table row (as described in How can you set headers with dynamic value in the RestFixtureConfig rest fixture.default.headers):
| setBody |grant_type=password&username=test&password=test123&scope=data+compute|
| setHeaders |!-Authorization: Basic dGVzdDo4YmE5MjRjZS0wNThhLTQ3Y2YtOGQ4Mi02ZWY1N2Y4NzdiNmQ=
Content-Type: application/x-www-form-urlencoded-!|
| POST | /parseq/oauth/token | 200 | | |
And now it works fine.
Related
Purpose of the following bash script should be setting of branch protection using curl. I am getting error 401, I am sure my credentials used in the script are correct. Is there something wrong about the way the authorization is set? (actual credentials are not copied from the original script)
#!/bin/bash
OAUTH2_TOKEN=""
OWNER=""
REPO=""
curl https://api.github.com/repos/${OWNER}/${REPO}/branches/main/ \
-X PUT \
-H "Authorization: Token ${OAUTH2_TOKEN}" \
-H "Accept: application/vnd.github+json" \
-vv \
-d '{
"protection": {
"enabled": true,
"required_status_checks": {
"strict": true,
"contexts": []
"enforcement_level": "everyone",
"contexts": [
"default"
]
}
}
}' \
| json protection
Log (actual values for owner, repo and token replaced):
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 140.82.113.6:443...
* TCP_NODELAY set
* Connected to api.github.com (140.82.113.6) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2456 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [79 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN, server accepted to use h2
* Server certificate:
* subject: C=US; ST=California; L=San Francisco; O=GitHub, Inc.; CN=*.github.com
* start date: Mar 16 00:00:00 2022 GMT
* expire date: Mar 16 23:59:59 2023 GMT
* subjectAltName: host "api.github.com" matched cert's "*.github.com"
* issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS Hybrid ECC SHA384 2020 CA1
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x5560a79d52f0)
} [5 bytes data]
> PUT /repos/owner/repo/branches/main/ HTTP/2
> Host: api.github.com
> user-agent: curl/7.68.0
> authorization: Token ""
> accept: application/vnd.github+json
> content-length: 256
> content-type: application/x-www-form-urlencoded
>
} [5 bytes data]
* We are completely uploaded and fine
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [57 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [57 bytes data]
* old SSL session ID is stale, removing
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
} [5 bytes data]
< HTTP/2 401
< server: GitHub.com
< date: Mon, 26 Sep 2022 15:25:24 GMT
< content-type: application/json; charset=utf-8
< content-length: 90
< x-github-media-type: github.v3; format=json
< x-ratelimit-limit: 60
< x-ratelimit-remaining: 59
< x-ratelimit-reset: 1664209524
< x-ratelimit-used: 1
< x-ratelimit-resource: core
< access-control-expose-headers: ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
< access-control-allow-origin: *
< strict-transport-security: max-age=31536000; includeSubdomains; preload
< x-frame-options: deny
< x-content-type-options: nosniff
< x-xss-protection: 0
< referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
< content-security-policy: default-src 'none'
< vary: Accept-Encoding, Accept, X-Requested-With
< x-github-request-id: 843E:270E:8439F7:10EBE61:6331C464
<
{ [90 bytes data]
100 346 100 90 100 256 273 778 --:--:-- --:--:-- --:--:-- 1054
* Connection #0 to host api.github.com left intact
I am trying to create user on keycloak using below request
echo "* Request for authorization"
RESULT=curl --data "username=admin&password=admin&grant_type=password&client_id=admin-cli" http://localhost:8080/auth/realms/master/protocol/openid-connect/token
echo "Recovery of the token"
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`
echo "user creation"
curl -v http://localhost:8080/auth/admin/realms/teste/users -H "Content-Type: application/json" -H "Authorization: bearer $TOKEN" --data '{"username": "user12", "firstName":"User","lastName":"Test", "email":"user12#randomemail.com", "enabled":"true", "emailVerified": false, "totp": true, "credentials": [ { "type": "password", "value": "admin.1","temporary": false } ], "groups": [ "test","monitor"]} '
When i run the above request I got an error "{"error":"unknown_error"}"
Complete response of the request:
* Request for authorization
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1906 100 1837 100 69 23857 896 --:--:-- --:--:-- --:--:-- 24753
Recovery of the token
user creation
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8080 (#0)
> POST /auth/admin/realms/teste/users HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Type: application/json
> Authorization: bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJnVkE4bkRJbHU5VS1DY1RyTm1pczNQaDF5TDhGbEs0ZGE1U2tBWndtY25jIn0.eyJleHAiOjE2NjE1MDMxMjcsImlhdCI6MTY2MTUwMzA2NywianRpIjoiMWU2YmUwYzktMDYyOC00NGFhLWE1ZjMtN2UxZjk1NjdkZjczIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL21hc3RlciIsInN1YiI6IjY3Mzk3NzI2LTM0ZDAtNDQ2NC04Mjk1LWJjZGM3Yjg3YTU2YyIsInR5cCI6IkJlYXJlciIsImF6cCI6ImFkbWluLWNsaSIsInNlc3Npb25fc3RhdGUiOiI1MDRiYjRkNS0yNTkwLTQ2NmUtYTJkYy01OTQzNGRlZmM3ODciLCJhY3IiOiIxIiwic2NvcGUiOiJlbWFpbCBwcm9maWxlIiwic2lkIjoiNTA0YmI0ZDUtMjU5MC00NjZlLWEyZGMtNTk0MzRkZWZjNzg3IiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiJ9.ggeUu-qpOErUkS_dpESqKcX4_IaojeETpHgOfR2pwx6TdxbY-Xbnq5IP0Xw4QU88neIzZd1GDSkKrO5KGKWptypsu5lIkwD_RqwFa_DSxhsunJvd4ZndEjN7ZgE5W41XCfYfgZNe9tEUnmlhosmBznM_NgsHfMJmzdJcO6m3-kgDn0xRnRL8r-jWuOzO1hp7TrR_3RePaYw_su_GxtFZtV1gtjoDw8xz8RPY6zia6jgn86a1A5npRyeSf8gAqOcKbqIbc6DdwqX-h-0NMin0S3ipeQDHR_C_I0NKuGF1I5zBsmUK7mFPpQT3vXmTvti7TUr4KdFmX67W4_ig4T8Ung
> Content-Length: 278
>
* upload completely sent off: 278 out of 278 bytes
< HTTP/1.1 500 Internal Server Error
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
< Referrer-Policy: no-referrer
< Date: Fri, 26 Aug 2022 08:37:47 GMT
< Connection: keep-alive
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< X-Content-Type-Options: nosniff
< Content-Type: application/json
< Content-Length: 25
<
* Connection #0 to host localhost left intact
{"error":"unknown_error"}* Closing connection 0
✋🏽
When I paste the URL of my blog in Facebook debugger, its not picking the title and also the image. In view source of my page, the og:title and also og:image are getting rendered but facebook scraper is not reading any.
Object at URL 'http://blog.la-pigiste.com/2017/09/20/diy-faire-son-terrazzo-granito-do-it-yourself-inspiration-tendance-tutoriel/' of type 'website' is invalid because a required property 'og:title' of type 'string' was not provided.
Facebook debugger also says "{
"error": {
"message": "An access token is required to request this resource.",
"type": "OAuthException",
"code": 104,
"fbtrace_id": "BMdGG7oTu6k"
}
}"
but i don't no what does it means .... 🤔
any help is greatly appreciated 🙏🏻
When trying to fetch new scrape information for your URL through the Open Graph Debugger you get the error:
Curl Error : OPERATION_TIMEOUTED Operation timed out after 10000 milliseconds with 0 bytes received
In other words, your web server didn't reply in 10 seconds and the crawler timed out.
It looks like you configured your web server to behave differently when the request is coming from the Facebook Crawler.
You can verify this using curl.
Fetching your URL with curl's default User Agent works fine:
$ curl -v 'http://blog.la-pigiste.com/2017/09/20/diy-faire-son-terrazzo-granito-do-it-yourself-inspiration-tendance-tutoriel/' > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 149.56.140.68...
* TCP_NODELAY set
* Connected to blog.la-pigiste.com (149.56.140.68) port 80 (#0)
> GET /2017/09/20/diy-faire-son-terrazzo-granito-do-it-yourself-inspiration-tendance-tutoriel/ HTTP/1.1
> Host: blog.la-pigiste.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx
< Date: Wed, 20 Sep 2017 10:34:37 GMT
< Content-Type: text/html; charset=UTF-8
< Content-Length: 117446
< Connection: keep-alive
< Vary: Accept-Encoding
< Last-Modified: Wed, 20 Sep 2017 07:25:20 GMT
< Accept-Ranges: bytes
< Vary: Accept-Encoding
< X-Powered-By: PleskLin
< Cache-Control: max-age=0, no-cache, no-store, must-revalidate
< Pragma: no-cache
< Expires: Mon, 29 Oct 1923 20:30:00 GMT
<
{ [956 bytes data]
100 114k 100 114k 0 0 159k 0 --:--:-- --:--:-- --:--:-- 159k
* Connection #0 to host blog.la-pigiste.com left intact
Anyway, when the Facebook crawler User Agent is used (facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)), the web server replies differently and only after about 14 seconds:
$ curl -v -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" 'http://blog.la-pigiste.com/2017/09/20/diy-faire-son-terrazzo-granito-do-it-yourself-inspiration-tendance-tutoriel/' > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 149.56.140.68...
* TCP_NODELAY set
* Connected to blog.la-pigiste.com (149.56.140.68) port 80 (#0)
> GET /2017/09/20/diy-faire-son-terrazzo-granito-do-it-yourself-inspiration-tendance-tutoriel/ HTTP/1.1
> Host: blog.la-pigiste.com
> User-Agent: facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
> Accept: */*
>
0 0 0 0 0 0 0 0 --:--:-- 0:00:14 --:--:-- 0< HTTP/1.1 200 OK
< Server: nginx
< Date: Wed, 20 Sep 2017 10:37:15 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
< X-Powered-By: PHP/5.6.30
< X-Pingback: http://blog.la-pigiste.com/xmlrpc.php
< Link: <http://blog.la-pigiste.com/wp-json/>; rel="https://api.w.org/", <...>; rel=shortlink
< Set-Cookie: wfvt_983661238=59c244cfe4c12; expires=Wed, 20-Sep-2017 11:07:03 GMT; Max-Age=1800; path=/; httponly
< Vary: Accept-Encoding
< X-Powered-By: PleskLin
<
{ [838 bytes data]
100 124k 0 124k 0 0 8507 0 --:--:-- 0:00:15 --:--:-- 36126
* Connection #0 to host blog.la-pigiste.com left intact
Ensure that your web server replies in time and with the correct HTML and the crawler will be able to fetch your OG tags.
so i Have mIRC 7.21 that it has by default UTF-8 enabled.
So i have this socket:
on *:sockopen:_tmdb_*:{
sockwrite -tn $sockname GET $hget($sockname,url) HTTP/1.1
sockwrite -tn $sockname Host: "nah"
sockwrite -tn $sockname User-Agent: mIRC-API/v1-Alpha
sockwrite -tn $sockname Accept: application/json
sockwrite -tn $sockname Connection: close
sockwrite -tn $sockname $crlf $+ $crlf
}
I'm getting by default these headers by the remote server:
[Header] HTTP/1.1 200 OK
[Header] Access-Control-Allow-Origin: *
[Header] Age: 0
[Header] Cache-Control: public, max-age=3600
[Header] Content-Type: application/json;charset=utf-8
.....
And i'm getting this response when it is written in english:
Extended Play 2006 47247
Though, when i'm trying to change the language. I'm making request to the api server
and defining &language=el. I'm getting this:
Headers:
[Header] HTTP/1.1 200 OK
[Header] Access-Control-Allow-Origin: *
[Header] Age: 0
[Header] Cache-Control: public, max-age=3600
[Header] Content-Type: application/json;charset=utf-8
.....
Result:
Ξ Ξντε Λεπτά ΑκΟΞΌΞ± 2006 47247
When i open the stored JSON file, mIRC downloaded... i can see just fine the greek
charset. mIRC Cannot.
Any ideas why my charset is getting messed up through sockets?
I mean i can just write fine with a small //echo -a Πεντε λεπτα ακόμη.
And it is displaying it just fine. Though through sockets is getting messed up..
if $utfdecode($utfencode($1-,162)) {
...
}
charset codes below, our charset code 162
000 - ANSI_CHARSET
001 - DEFAULT_CHARSET
002 - SYMBOL_CHARSET
077 - MAC_CHARSET
128 - SHIFTJIS_CHARSET
129 - HANGEUL_CHARSET
130 - JOHAB_CHARSET
134 - GB2312_CHARSET
136 - CHINESEBIG5_CHARSET
161 - GREEK_CHARSET
162 - TURKISH_CHARSET
163 - VIETNAMESE_CHARSET
177 - HEBREW_CHARSET
178 - ARABIC_CHARSET
186 - BALTIC_CHARSET
204 - RUSSIAN_CHARSET
222 - THAI_CHARSET
238 - EASTEUROPE_CHARSET
255 - OEM_CHARSET
Is there a command-line tool that could tell me if Gzip is on? What I'm looking for is something that can say the stream coming from the server is really gzipped even if the header params say Gzip:1 (which it could be falsely placing in the headers).
I don't see a switch in curl, or wget, or tcpdump, or anything, but maybe I'm just missing something, or perhaps there is something else that could provide me this bit of information? Any help would be appreciated.
This shows Content-Encoding: gzip indicating compressed data. The data was then in gzip format, otherwise there would have been an error.
$ curl --compressed -v http://zlib.net > /dev/null
* About to connect() to zlib.net port 80 (#0)
* Trying 69.73.181.135... connected
* Connected to zlib.net (69.73.181.135) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8r zlib/1.2.3
> Host: zlib.net
> Accept: */*
> Accept-Encoding: deflate, gzip
>
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0< HTTP/1.1 200 OK
< Date: Tue, 20 Mar 2012 23:19:00 GMT
< Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
< Last-Modified: Mon, 06 Feb 2012 03:46:25 GMT
< ETag: "29603b0-84b4-4b84381b0a640"
< Accept-Ranges: bytes
< Vary: Accept-Encoding,User-Agent
< Content-Encoding: gzip
< Content-Length: 9508
< Content-Type: text/html
<
{ [data not shown]
100 9508 100 9508 0 0 24955 0 --:--:-- --:--:-- --:--:-- 50574* Connection #0 to host zlib.net left intact
* Closing connection #0