Forum Discussion

adalan_1411's avatar
adalan_1411
Icon for Nimbostratus rankNimbostratus
Aug 26, 2008

HTTP::Respond HTTP Version

I've got an iRule that uses the HTTP::respond function that is not working. I've been able to do some packet monitoring and I can see that the traffic is being sent HTTP 1.0 (which is confirmed per the documentation), but it appears that it drops the connection. If I use TCP::Respond and force it to HTTP 1.1 it works fine. I was wondering if anyone else has had similar experience?

 

 

Thanks!

7 Replies

  • Hi,

     

     

    If the server sends an HTTP version 1.0 response, the client should close the TCP connection, as HTTP 1.0 only supported one request/response loop per TCP connection. When you use TCP::respond you're able to specify HTTP/1.1, so the client won't automatically close the connection.

     

     

    I think there was an CR noting the request to customize the headers included in HTTP::redirect and HTTP::respond, but I'm not having any luck finding references to it. Anyone know if you can specify HTTP/1.1 with the change in the CR?

     

     

    Aaron
  • How should this snippet function then?

    HTTP::respond 200 content "$TITLEMaintenance Window enabled"

    My thought is that it should display the content. Instead, I get a connection reset error in IE and Firefox.

    Here's the traffic from Wireshark:

    3948.550997XXX.XXX.XXX.XXXYYY.YYY.YYY.YYYTCP4588 > http [SYN] Seq=0 Len=0 MSS=1460

    3958.553963YYY.YYY.YYY.YYYXXX.XXX.XXX.XXXTCPhttp > 4588 [SYN, ACK] Seq=0 Ack=1 Win=4140 Len=0 MSS=1380

    3968.554000XXX.XXX.XXX.XXXYYY.YYY.YYY.YYYTCP4588 > http [ACK] Seq=1 Ack=1 Win=65535 [TCP CHECKSUM INCORRECT] Len=0

    3978.554276XXX.XXX.XXX.XXXYYY.YYY.YYY.YYYHTTPGET /check HTTP/1.1

    4008.559382YYY.YYY.YYY.YYYXXX.XXX.XXX.XXXHTTPHTTP/1.0 200 OK

    4018.559418YYY.YYY.YYY.YYYXXX.XXX.XXX.XXXTCPhttp > 4588 [RST, ACK] Seq=283 Ack=981 Win=5120 Len=0

  • In 9.4.5, I ran a quick tcpdump and saw the client (Firefox) FIN the connection after receiving an HTTP/1.0 response. Maybe there is a difference in the response being sent between the LTM versions? I wouldn't expect the VIP to send a RST. Maybe F5 Support could help investigate this? They could probably also give you info on the HTTP::respond header change request (CR).

     

     

    Aaron
  • I also wish to return an HTTP 1.1 response with the HTTP::respond or HTTP::redirect command. Please, F5, implement this essential fix ASAP! It's a relatively glaring omission to your otherwise stellar product!
  • If you want more visibility to an open CR (change request), open a support case and ask to be added to the CR (support should be able to look up the number).

     

     

    Denny
  • Hi Adalan,

     

     

    I am also facing a similar issue.

     

     

    Could you please provide the iRule in which you used TCP::Respond to force it to HTTP 1.1 response.

     

     

    Thanks,

     

    Praveen Kumar
  • Hi Praveen,

     

     

    Please see my reply here:

     

     

    http://devcentral.f5.com/Community/GroupDetails/tabid/1082223/asg/50/afv/topic/aft/1176945/aff/5/showtab/groupforums/Default.aspx

     

     

    Aaron