You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by Samisa Abeysinghe <sa...@yahoo.com> on 2004/11/03 08:31:10 UTC

Selecting between HTTP 1.0 /1.1 is not supported with transport abstraction layer

Hi All,
    I was digging into the "Transport abstraction layer" (SOAPTransport.h) while trying to
implement Keep-Alive support.

    I noticed that the transport layer does not have any mechanism for the user to specify the
required HTTP version at Stub  level. Hence even though axis2 transport has the support to use
either  HTTP 1.0 or 1.1, the abstraction layer always uses the default, that is HTTP 1.1,
irrespective of what the user want.

    Aslo in GDefine.hpp, we have AXIS_PROTOCOL_TYPE with values APTHTTP=1, APTFTP, APTSMTP,
APTHTTPS, APTOTHER. Again there is no distiction for HTTP 1.0/1.1. And there is a get method to
access protocol, but no set method.

    I guess we have to let the user select transport protocol at stub level. (Without this there
is no point supporting Keep-Alive behaviour for HTTP 1.0 as it always uses HTTP 1.1)

Thoughts please...

Thanks,
Samisa...
   


		
__________________________________ 
Do you Yahoo!? 
Check out the new Yahoo! Front Page. 
www.yahoo.com 
 


Re: Selecting between HTTP 1.0 /1.1 is not supported with transport abstraction layer

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
I have added code to help users to select between HTTP/1.0 and HTTP/1.1 (and any other transport
protocol to be suported in the future, like SMTP) from Stub level. (this was as part of my effort
to support Keep-Alive)

We need to document these improvements.

Thanks,
Samisa...

--- Samisa Abeysinghe <sa...@yahoo.com> wrote:

> In order to make the selection between HTTP/1.0/1.1 possible, I made changes to GDefine.hpp and
> added APTHTTP1_0 and APTHTTP1_1 in place of APTHTTP to AXIS_PROTOCOL_TYPE.
> 
> Testing with this revealed no problems so far. However, if you run into troubles, please let
> know.
> 
> Samisa...
> 
> --- Samisa Abeysinghe <sa...@yahoo.com> wrote:
> 
> > With Axis Java if client uses HTTP 1.0, server returns HTTP 1.1 with 'Connection: close' HTTP
> > header.
> > Going by this, I guess what the client, using HTTP 1.1, has to do if the server returns HTTP
> 1.0
> > is to close the connection, if server does not have 'Keep-Alive' HTTP header in response.
> > 
> > Need to look into this further.
> > 
> > Samisa...
> > 
> > --- Samisa Abeysinghe <sa...@yahoo.com> wrote:
> > 
> > > > If the stub chooses 1.1 can the server returns 1.0? If so what happens
> > > > next?
> > > 
> > > I have no idea John. I will have a look into specs to find the expected behaviour.
> > > 
> > > Samisa...
> > > 
> > > --- John Hawkins <HA...@uk.ibm.com> wrote:
> > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > 
> > > > 
> > > > John Hawkins
> > > > 
> > > > 
> > > > 
> > > > 
> > > >                                                                            
> > > >              Samisa Abeysinghe                                             
> > > >              <samisa_abeysingh                                             
> > > >              e@yahoo.com>                                               To 
> > > >                                        axis-c-dev@ws.apache.org            
> > > >              03/11/2004 07:31                                           cc 
> > > >                                                                            
> > > >                                                                    Subject 
> > > >              Please respond to         Selecting between HTTP 1.0 /1.1 is  
> > > >               "Apache AXIS C           not supported with transport        
> > > >              Developers List"          abstraction layer                   
> > > >                                                                            
> > > >                                                                            
> > > >                                                                            
> > > >                                                                            
> > > >                                                                            
> > > >                                                                            
> > > > 
> > > > 
> > > > 
> > > > 
> > > > Hi All,
> > > >     I was digging into the "Transport abstraction layer" (SOAPTransport.h)
> > > > while trying to
> > > > implement Keep-Alive support.
> > > > 
> > > >     I noticed that the transport layer does not have any mechanism for the
> > > > user to specify the
> > > > required HTTP version at Stub  level. Hence even though axis2 transport has
> > > > the support to use
> > > > either  HTTP 1.0 or 1.1, the abstraction layer always uses the default,
> > > > that is HTTP 1.1,
> > > > irrespective of what the user want.
> > > > 
> > > >     Aslo in GDefine.hpp, we have AXIS_PROTOCOL_TYPE with values APTHTTP=1,
> > > > APTFTP, APTSMTP,
> > > > APTHTTPS, APTOTHER. Again there is no distiction for HTTP 1.0/1.1. And
> > > > there is a get method to
> > > > access protocol, but no set method.
> > > > 
> > > >     I guess we have to let the user select transport protocol at stub
> > > > level. (Without this there
> > > > is no point supporting Keep-Alive behaviour for HTTP 1.0 as it always uses
> > > > HTTP 1.1)
> > > > 
> > > > Thoughts please...
> > > > 
> > > > Thanks,
> > > > Samisa...
> > > > 
> > > > 
> > > > 
> > > > 
> > > > __________________________________
> > > > Do you Yahoo!?
> > > > Check out the new Yahoo! Front Page.
> > > > www.yahoo.com
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > 
> > > 
> > > 
> > > 		
> > > __________________________________ 
> > > Do you Yahoo!? 
> > > Check out the new Yahoo! Front Page. 
> > > www.yahoo.com 
> > >  
> > > 
> > > 
> > 
> > 
> > 
> > 		
> > __________________________________ 
> > Do you Yahoo!? 
> > Check out the new Yahoo! Front Page. 
> > www.yahoo.com 
> >  
> > 
> > 
> 
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> Check out the new Yahoo! Front Page. 
> www.yahoo.com 
>  
> 
> 



		
__________________________________ 
Do you Yahoo!? 
Check out the new Yahoo! Front Page. 
www.yahoo.com 
 


Re: Selecting between HTTP 1.0 /1.1 is not supported with transport abstraction layer

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
In order to make the selection between HTTP/1.0/1.1 possible, I made changes to GDefine.hpp and
added APTHTTP1_0 and APTHTTP1_1 in place of APTHTTP to AXIS_PROTOCOL_TYPE.

Testing with this revealed no problems so far. However, if you run into troubles, please let know.

Samisa...

--- Samisa Abeysinghe <sa...@yahoo.com> wrote:

> With Axis Java if client uses HTTP 1.0, server returns HTTP 1.1 with 'Connection: close' HTTP
> header.
> Going by this, I guess what the client, using HTTP 1.1, has to do if the server returns HTTP 1.0
> is to close the connection, if server does not have 'Keep-Alive' HTTP header in response.
> 
> Need to look into this further.
> 
> Samisa...
> 
> --- Samisa Abeysinghe <sa...@yahoo.com> wrote:
> 
> > > If the stub chooses 1.1 can the server returns 1.0? If so what happens
> > > next?
> > 
> > I have no idea John. I will have a look into specs to find the expected behaviour.
> > 
> > Samisa...
> > 
> > --- John Hawkins <HA...@uk.ibm.com> wrote:
> > 
> > > 
> > > 
> > > 
> > > 
> > 
> > > 
> > > John Hawkins
> > > 
> > > 
> > > 
> > > 
> > >                                                                            
> > >              Samisa Abeysinghe                                             
> > >              <samisa_abeysingh                                             
> > >              e@yahoo.com>                                               To 
> > >                                        axis-c-dev@ws.apache.org            
> > >              03/11/2004 07:31                                           cc 
> > >                                                                            
> > >                                                                    Subject 
> > >              Please respond to         Selecting between HTTP 1.0 /1.1 is  
> > >               "Apache AXIS C           not supported with transport        
> > >              Developers List"          abstraction layer                   
> > >                                                                            
> > >                                                                            
> > >                                                                            
> > >                                                                            
> > >                                                                            
> > >                                                                            
> > > 
> > > 
> > > 
> > > 
> > > Hi All,
> > >     I was digging into the "Transport abstraction layer" (SOAPTransport.h)
> > > while trying to
> > > implement Keep-Alive support.
> > > 
> > >     I noticed that the transport layer does not have any mechanism for the
> > > user to specify the
> > > required HTTP version at Stub  level. Hence even though axis2 transport has
> > > the support to use
> > > either  HTTP 1.0 or 1.1, the abstraction layer always uses the default,
> > > that is HTTP 1.1,
> > > irrespective of what the user want.
> > > 
> > >     Aslo in GDefine.hpp, we have AXIS_PROTOCOL_TYPE with values APTHTTP=1,
> > > APTFTP, APTSMTP,
> > > APTHTTPS, APTOTHER. Again there is no distiction for HTTP 1.0/1.1. And
> > > there is a get method to
> > > access protocol, but no set method.
> > > 
> > >     I guess we have to let the user select transport protocol at stub
> > > level. (Without this there
> > > is no point supporting Keep-Alive behaviour for HTTP 1.0 as it always uses
> > > HTTP 1.1)
> > > 
> > > Thoughts please...
> > > 
> > > Thanks,
> > > Samisa...
> > > 
> > > 
> > > 
> > > 
> > > __________________________________
> > > Do you Yahoo!?
> > > Check out the new Yahoo! Front Page.
> > > www.yahoo.com
> > > 
> > > 
> > > 
> > > 
> > > 
> > 
> > 
> > 
> > 		
> > __________________________________ 
> > Do you Yahoo!? 
> > Check out the new Yahoo! Front Page. 
> > www.yahoo.com 
> >  
> > 
> > 
> 
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> Check out the new Yahoo! Front Page. 
> www.yahoo.com 
>  
> 
> 



		
__________________________________ 
Do you Yahoo!? 
Check out the new Yahoo! Front Page. 
www.yahoo.com 
 


Re: Selecting between HTTP 1.0 /1.1 is not supported with transport abstraction layer

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
With Axis Java if client uses HTTP 1.0, server returns HTTP 1.1 with 'Connection: close' HTTP
header.
Going by this, I guess what the client, using HTTP 1.1, has to do if the server returns HTTP 1.0
is to close the connection, if server does not have 'Keep-Alive' HTTP header in response.

Need to look into this further.

Samisa...

--- Samisa Abeysinghe <sa...@yahoo.com> wrote:

> > If the stub chooses 1.1 can the server returns 1.0? If so what happens
> > next?
> 
> I have no idea John. I will have a look into specs to find the expected behaviour.
> 
> Samisa...
> 
> --- John Hawkins <HA...@uk.ibm.com> wrote:
> 
> > 
> > 
> > 
> > 
> 
> > 
> > John Hawkins
> > 
> > 
> > 
> > 
> >                                                                            
> >              Samisa Abeysinghe                                             
> >              <samisa_abeysingh                                             
> >              e@yahoo.com>                                               To 
> >                                        axis-c-dev@ws.apache.org            
> >              03/11/2004 07:31                                           cc 
> >                                                                            
> >                                                                    Subject 
> >              Please respond to         Selecting between HTTP 1.0 /1.1 is  
> >               "Apache AXIS C           not supported with transport        
> >              Developers List"          abstraction layer                   
> >                                                                            
> >                                                                            
> >                                                                            
> >                                                                            
> >                                                                            
> >                                                                            
> > 
> > 
> > 
> > 
> > Hi All,
> >     I was digging into the "Transport abstraction layer" (SOAPTransport.h)
> > while trying to
> > implement Keep-Alive support.
> > 
> >     I noticed that the transport layer does not have any mechanism for the
> > user to specify the
> > required HTTP version at Stub  level. Hence even though axis2 transport has
> > the support to use
> > either  HTTP 1.0 or 1.1, the abstraction layer always uses the default,
> > that is HTTP 1.1,
> > irrespective of what the user want.
> > 
> >     Aslo in GDefine.hpp, we have AXIS_PROTOCOL_TYPE with values APTHTTP=1,
> > APTFTP, APTSMTP,
> > APTHTTPS, APTOTHER. Again there is no distiction for HTTP 1.0/1.1. And
> > there is a get method to
> > access protocol, but no set method.
> > 
> >     I guess we have to let the user select transport protocol at stub
> > level. (Without this there
> > is no point supporting Keep-Alive behaviour for HTTP 1.0 as it always uses
> > HTTP 1.1)
> > 
> > Thoughts please...
> > 
> > Thanks,
> > Samisa...
> > 
> > 
> > 
> > 
> > __________________________________
> > Do you Yahoo!?
> > Check out the new Yahoo! Front Page.
> > www.yahoo.com
> > 
> > 
> > 
> > 
> > 
> 
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> Check out the new Yahoo! Front Page. 
> www.yahoo.com 
>  
> 
> 



		
__________________________________ 
Do you Yahoo!? 
Check out the new Yahoo! Front Page. 
www.yahoo.com 
 


Re: Selecting between HTTP 1.0 /1.1 is not supported with transport abstraction layer

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
> If the stub chooses 1.1 can the server returns 1.0? If so what happens
> next?

I have no idea John. I will have a look into specs to find the expected behaviour.

Samisa...

--- John Hawkins <HA...@uk.ibm.com> wrote:

> 
> 
> 
> 

> 
> John Hawkins
> 
> 
> 
> 
>                                                                            
>              Samisa Abeysinghe                                             
>              <samisa_abeysingh                                             
>              e@yahoo.com>                                               To 
>                                        axis-c-dev@ws.apache.org            
>              03/11/2004 07:31                                           cc 
>                                                                            
>                                                                    Subject 
>              Please respond to         Selecting between HTTP 1.0 /1.1 is  
>               "Apache AXIS C           not supported with transport        
>              Developers List"          abstraction layer                   
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
> 
> 
> 
> 
> Hi All,
>     I was digging into the "Transport abstraction layer" (SOAPTransport.h)
> while trying to
> implement Keep-Alive support.
> 
>     I noticed that the transport layer does not have any mechanism for the
> user to specify the
> required HTTP version at Stub  level. Hence even though axis2 transport has
> the support to use
> either  HTTP 1.0 or 1.1, the abstraction layer always uses the default,
> that is HTTP 1.1,
> irrespective of what the user want.
> 
>     Aslo in GDefine.hpp, we have AXIS_PROTOCOL_TYPE with values APTHTTP=1,
> APTFTP, APTSMTP,
> APTHTTPS, APTOTHER. Again there is no distiction for HTTP 1.0/1.1. And
> there is a get method to
> access protocol, but no set method.
> 
>     I guess we have to let the user select transport protocol at stub
> level. (Without this there
> is no point supporting Keep-Alive behaviour for HTTP 1.0 as it always uses
> HTTP 1.1)
> 
> Thoughts please...
> 
> Thanks,
> Samisa...
> 
> 
> 
> 
> __________________________________
> Do you Yahoo!?
> Check out the new Yahoo! Front Page.
> www.yahoo.com
> 
> 
> 
> 
> 



		
__________________________________ 
Do you Yahoo!? 
Check out the new Yahoo! Front Page. 
www.yahoo.com 
 


Re: Selecting between HTTP 1.0 /1.1 is not supported with transport abstraction layer

Posted by John Hawkins <HA...@uk.ibm.com>.



If the stub chooses 1.1 can the server returns 1.0? If so what happens
next?

John Hawkins




                                                                           
             Samisa Abeysinghe                                             
             <samisa_abeysingh                                             
             e@yahoo.com>                                               To 
                                       axis-c-dev@ws.apache.org            
             03/11/2004 07:31                                           cc 
                                                                           
                                                                   Subject 
             Please respond to         Selecting between HTTP 1.0 /1.1 is  
              "Apache AXIS C           not supported with transport        
             Developers List"          abstraction layer                   
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Hi All,
    I was digging into the "Transport abstraction layer" (SOAPTransport.h)
while trying to
implement Keep-Alive support.

    I noticed that the transport layer does not have any mechanism for the
user to specify the
required HTTP version at Stub  level. Hence even though axis2 transport has
the support to use
either  HTTP 1.0 or 1.1, the abstraction layer always uses the default,
that is HTTP 1.1,
irrespective of what the user want.

    Aslo in GDefine.hpp, we have AXIS_PROTOCOL_TYPE with values APTHTTP=1,
APTFTP, APTSMTP,
APTHTTPS, APTOTHER. Again there is no distiction for HTTP 1.0/1.1. And
there is a get method to
access protocol, but no set method.

    I guess we have to let the user select transport protocol at stub
level. (Without this there
is no point supporting Keep-Alive behaviour for HTTP 1.0 as it always uses
HTTP 1.1)

Thoughts please...

Thanks,
Samisa...




__________________________________
Do you Yahoo!?
Check out the new Yahoo! Front Page.
www.yahoo.com