如题,这个 connect ,就是三次握手么,这个超时时间就是指三次握手的时间么?
1
bengol 2016-07-02 11:04:07 +08:00 via Android
客户端前 2 次握手的时间
|
2
2225377fjs 2016-07-02 11:13:46 +08:00
一般情况下 socket 层级设置 connect timeout 的确是在 connect 操作的超时(建立 tcp 连接,握手步骤),在异步或者同步的 connect 操作都有用。
但是对于 http 层级来说,好像没有 connect timeout 这种说法,更多的是设置类似于 socket_timeout 类似的参数,这个是在一个 tcp 连接建立之后,长时间都没有 http 交互的话,服务器将会主动将这个 tcp 连接关闭。 |
3
aiqier OP @2225377fjs 但是无论是什么语言,在使用 http 库进行 http 请求时,都可以设置两个参数,一个是 connect timeout 一个是 readtimout
``` class HTTPRequest(object): """HTTP client request object.""" # Default values for HTTPRequest parameters. # Merged with the values on the request object by AsyncHTTPClient # implementations. _DEFAULTS = dict( connect_timeout=20.0, request_timeout=20.0, follow_redirects=True, max_redirects=5, decompress_response=True, proxy_password='', allow_nonstandard_methods=False, validate_cert=True) def __init__(self, url, method="GET", headers=None, body=None, auth_username=None, auth_password=None, auth_mode=None, connect_timeout=None, request_timeout=None, if_modified_since=None, follow_redirects=None, max_redirects=None, user_agent=None, use_gzip=None, network_interface=None, streaming_callback=None, header_callback=None, prepare_curl_callback=None, proxy_host=None, proxy_port=None, proxy_username=None, proxy_password=None, allow_nonstandard_methods=None, validate_cert=None, ca_certs=None, allow_ipv6=None, client_key=None, client_cert=None, body_producer=None, expect_100_continue=False, decompress_response=None, ssl_options=None): ``` |
4
aiqier OP |