HTTP协议以及PYTHON开发技巧

  

        http协议的相关知识应该都很清楚,这里简单回顾下其流程。首先HTTP底层是利用TCP进行通讯的;其次,HTTP本身协议是面向无连接的:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

        Python采用httplib库进行HTTP通讯,用法很简单:

	import httplib #导入httplib库
	conn = httplib.HTTPConnection("10.197.32.136",8080) #建立http链接,只需要IP地址和端口
	conn.request("POST","/RealTimeServer/WebSocketDemo",str,{}) #发送url请求
	response = conn.getresponse() #获取返回信息
	conn.close() #关闭链接

         request函数是非阻塞函数,也就是说,它向服务器发送了url请求之后,可以正常运行之后的任务。

         getresponse函数是阻塞函数,如果没有收到服务器的返回信息,程序将无法继续。

         close函数在任何地方都可以调用,因此,如果无需服务器返回信息,则可以在发送请求之后就关闭链接。

         请注意,Httplib无法连续发送两个request,例如:

	conn.request("POST","/RealTimeServer/WebSocketDemo",str1,{})
	conn.request("POST","/RealTimeServer/WebSocketDemo",str2,{}) 

        
         程序将会抛异常,并且关闭。因为http协议本身一次链接只支持一个request,在收到response或者关闭才能开启下一次链接。所以,正常的程序应该是:

        

	conn.request("POST","/RealTimeServer/WebSocketDemo",str1,{})
	conn.close() 
	conn.request("POST","/RealTimeServer/WebSocketDemo",str2,{}) 

或者:

	conn.request("POST","/RealTimeServer/WebSocketDemo",str1,{})
	response = conn.getresponse()
	conn.request("POST","/RealTimeServer/WebSocketDemo",str2,{}) 

你可能感兴趣的:(python,服务器,url,import,任务,通讯)