<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Bob Courchaine wrote:
<blockquote cite="mid43B17C0A.2030408@nfldinet.com" type="cite">
<pre wrap="">Nevin Pratt wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Brent Vukmer wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Have you watched the HTTP request/response interaction using
Ethereal? I find that tool to be a very helpful complement to digging
into networking code.
</pre>
</blockquote>
</blockquote>
<pre wrap=""><!---->
</pre>
<blockquote type="cite">
<pre wrap="">I'll try it. Unfortunately, I'm Mac based. So, I'll have to dig up
another machine somewhere. But I'll give it a go.
</pre>
</blockquote>
<pre wrap=""><!---->
Nevin, try using tcpdump from a Terminal. It comes w/ OS X.
You'll have to use sudo to run it as root ("sudo tcpdump").
Bob
</pre>
</blockquote>
I tried that. It wasn't particularly helpful. For example, while
running tcpdump, when I type the following URL into my (Thunderbird)
browser:<br>
<br>
<tt><a class="moz-txt-link-freetext"
href="http://testing.shippingapis.com/ShippingAPITest.dll?API=Verify&XML=">http://testing.shippingapis.com/ShippingAPITest.dll?API=Verify&XML=</a><AddressValidateRequest
><Address
ID="0"><Address1></Address1><Address2>6406 Ivy
Lane</Address2><City>Greenbelt</City><State>MD</State><Zip5></Zip5><Zip4></Zip4></Address></AddressValidateRequest></tt><br>
<br>
tcpdump gives me the following:<br>
<br>
<blockquote type="cite">10:56:05.224754 IP 192.168.0.25.56308 >
utscfwhm01.ut.sprintbbd.net.domain: 26942+ A?
testing.shippingapis.com. (42)<br>
10:56:05.345274 IP utscfwhm01.ut.sprintbbd.net.domain >
192.168.0.25.56308: 26942* 1/3/3 A[|domain]<br>
10:56:05.346627 IP 192.168.0.25.50582 >
testing.shippingapis.com.http: S 1878312729:1878312729(0) win 65535
<mss 1460,nop,wscale 0,nop,nop,timestamp 1507361664 0><br>
10:56:05.414864 IP testing.shippingapis.com.http >
192.168.0.25.50582: S 2571541148:2571541148(0) ack 1878312730 win 17520
<mss 1460,nop,wscale 0,nop,nop,timestamp 0 0><br>
10:56:05.414968 IP 192.168.0.25.50582 >
testing.shippingapis.com.http: . ack 1 win 65535 <nop,nop,timestamp
1507361664 0><br>
10:56:05.415152 IP 192.168.0.25.50582 >
testing.shippingapis.com.http: P 1:723(722) ack 1 win 65535
<nop,nop,timestamp 1507361664 0><br>
10:56:05.528382 IP testing.shippingapis.com.http >
192.168.0.25.50582: P 1:101(100) ack 723 win 16798
<nop,nop,timestamp 112599815 1507361664><br>
10:56:05.529178 IP testing.shippingapis.com.http >
192.168.0.25.50582: FP 101:258(157) ack 723 win 16798
<nop,nop,timestamp 112599815 1507361664><br>
10:56:05.529229 IP 192.168.0.25.50582 >
testing.shippingapis.com.http: . ack 259 win 65535
<nop,nop,timestamp 1507361664 112599815><br>
10:56:05.529436 IP 192.168.0.25.50582 >
testing.shippingapis.com.http: F 723:723(0) ack 259 win 65535
<nop,nop,timestamp 1507361664 112599815><br>
10:56:05.599318 IP testing.shippingapis.com.http >
192.168.0.25.50582: . ack 724 win 16798 <nop,nop,timestamp 112599816
1507361664><br>
</blockquote>
<br>
Then, in Squeak, when I enter that same URL as an argument to
"HTTPClient httpGetDocument:", tcpdump gives me the following:<br>
<br>
<blockquote type="cite">11:00:42.637048 IP 192.168.0.25.56324 >
utscfwhm01.ut.sprintbbd.net.domain: 4024+ PTR?
12.0.0.224.in-addr.arpa. (41)<br>
11:00:42.693034 IP utscfwhm01.ut.sprintbbd.net.domain >
192.168.0.25.56324: 4024* 1/3/9 PTR[|domain]<br>
11:00:43.055624 IP 192.168.0.25.49271 >
testing.shippingapis.com.http: S 849893481:849893481(0) win 65535
<mss 1460,nop,wscale 0,nop,nop,timestamp 1507362219 0><br>
11:00:43.193739 IP testing.shippingapis.com.http >
192.168.0.25.49271: S 1243403613:1243403613(0) ack 849893482 win 17520
<mss 1460,nop,wscale 0,nop,nop,timestamp 0 0><br>
11:00:43.193830 IP 192.168.0.25.49271 >
testing.shippingapis.com.http: . ack 1 win 65535 <nop,nop,timestamp
1507362220 0><br>
11:00:43.555171 IP 192.168.0.25.49271 >
testing.shippingapis.com.http: P 1:366(365) ack 1 win 65535
<nop,nop,timestamp 1507362220 0><br>
11:00:43.636319 IP testing.shippingapis.com.http >
192.168.0.25.49271: F 225:225(0) ack 366 win 17155
<nop,nop,timestamp 112585161 1507362220><br>
11:00:43.636409 IP 192.168.0.25.49271 >
testing.shippingapis.com.http: . ack 1 win 65535 <nop,nop,timestamp
1507362220 0><br>
11:00:43.637288 IP testing.shippingapis.com.http >
192.168.0.25.49271: P 1:225(224) ack 366 win 17155
<nop,nop,timestamp 112585161 1507362220><br>
11:00:43.637322 IP 192.168.0.25.49271 >
testing.shippingapis.com.http: . ack 226 win 65535
<nop,nop,timestamp 1507362220 112585161><br>
11:00:44.376669 IP 192.168.0.25.49271 >
testing.shippingapis.com.http: R 366:366(0) ack 226 win 65535<br>
</blockquote>
<br>
As far as I can tell, that doesn't tell me anything about why the
Microsoft IIS server at "testing.shippingapis.com" is treating the two
requests differently-- why it works fine when my browser is the client,
but returns a "400 Bad Request" error when Squeak is the client.<br>
<br>
Nevin<br>
<br>
<br>
<br>
</body>
</html>