[Twisted-web] HTTPClient vs. HTTPClientFactory

Andrew McNabb amcnabb at mcnabbs.org
Thu Apr 17 20:32:03 EDT 2008


I'm still a little new to Twisted, so I was wondering if some kind soul
might be willing to help make sure I'm looking at things correctly.

First, I think I understand the difference between protocol factories
and protocols, but I could use a little reassurance.  My current
understanding is that the protocol factory holds the state that is
common to all connections, whereas the protocol holds the state that is
specific to a particular connection.  Is that an accurate understanding?

If that is correct, then what is the difference between a protocol
factory and a protocol for a client (like HTTPClient) where only one
connection is involved?  I'm a bit confused about why HTTPClientFactory
isn't a trivial class.  According to my current understanding, all of
the logic would be in HTTPClient.

I was also confused about why HTTPClientFactory would set
`self.protocol.followRedirect = followRedirect` in its __init__ method.
Since `self.protocol` is the HTTPPageGetter class, it appears that the
client factory is setting the followRedirect attribute for all
connections (associated with all HTTPClientFactories).  I was surprised
that HTTPClientFactory wouldn't set `self.followRedirect =
followRedirect`, in which case HTTPClient would look at
`self.factory.followRedirect`.

If someone could help clear up these questions for me, I feel like I
would understand Twisted a lot better.

Thank you!

-- 
Andrew McNabb
http://www.mcnabbs.org/andrew/
PGP Fingerprint: 8A17 B57C 6879 1863 DE55  8012 AB4D 6098 8826 6868
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://twistedmatrix.com/pipermail/twisted-web/attachments/20080417/4d502555/attachment.pgp


More information about the Twisted-web mailing list