人工智能(PythonNet)—— TCP应用之HTTP传输
2018-07-10 20:22
423 查看
版权声明:记事、留心、分享;如有侵权、违规情况等,请及时联系原创作者。 https://blog.csdn.net/qq_27297393/article/details/80991337
b、简单灵活,和多种语言对接方便
c、无状态协议,不记录用户的通信内容
d、成熟稳定 http1.1
* 请求方,根据协议组织请求内容发送给对方
* 服务方,收到内容按照协议解析
* 服务方,将回复内容按照协议组织发送给请求方
* 请求方,收到回复根据协议解析
请求行
请求头
空行
请求体
eg:
GET / HTTP/1.1
请求种类:
GET 获取网络资源
POST 提交一定的附加数据,得到返回结果
HEAD 获取响应头
PUT 更新服务器资源
DELETE 删除服务器资源
CONNECT 预留
TRACE 测试
OPTIONS 获取服务器性能
以键值对的形式对请求信息进行描述
eg:
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
4、HTTP响应(Response)
响应格式:
响应行
响应头
空行
响应体
版本信息 响应码 附加信息
eg:
HTTP/1.1 200 OK
响应码 :
1xx 提示信息 表示请求已经接受
2xx 响应成功
3xx 响应需要重新请定向
4xx 客户端错误
5xx 服务器错误
常见响应码 :
200 成功
404 请求页面不存在
401 没有访问权限
500 服务器发生未知错误
503 服务器暂时无法执行
eg:
Cache-Control: private
Connection: Keep-Alive
1、tcp应用:http传输
HTTP,超文本传输协议(HyperText Transfer Protocol),属于应用层协议;主要用于网页的获取(基于网站的数据传输),信息的传递(基于http协议的数据传输)。
一、HTTP概念
1、HTTP的特点
a、应用层协议,传输层使用tcp传输b、简单灵活,和多种语言对接方便
c、无状态协议,不记录用户的通信内容
d、成熟稳定 http1.1
2、HTTP的工作模式
* 使用http双方均遵循http协议规定发送接收消息体* 请求方,根据协议组织请求内容发送给对方
* 服务方,收到内容按照协议解析
* 服务方,将回复内容按照协议组织发送给请求方
* 请求方,收到回复根据协议解析
3、HTTP请求(Request)
请求格式:请求行
请求头
空行
请求体
a、请求行
请求种类 请求内容 协议版本eg:
GET / HTTP/1.1
请求种类:
GET 获取网络资源
POST 提交一定的附加数据,得到返回结果
HEAD 获取响应头
PUT 更新服务器资源
DELETE 删除服务器资源
CONNECT 预留
TRACE 测试
OPTIONS 获取服务器性能
b、请求头
对请求内容的具体描述以键值对的形式对请求信息进行描述
eg:
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
c、请求体
提交具体的请求参数 4、HTTP响应(Response)
响应格式: 响应行
响应头
空行
响应体
a、响应行
反馈具体的响应情况版本信息 响应码 附加信息
eg:
HTTP/1.1 200 OK
响应码 :
1xx 提示信息 表示请求已经接受
2xx 响应成功
3xx 响应需要重新请定向
4xx 客户端错误
5xx 服务器错误
常见响应码 :
200 成功
404 请求页面不存在
401 没有访问权限
500 服务器发生未知错误
503 服务器暂时无法执行
b、响应头
对响应信息的具体描述eg:
Cache-Control: private
Connection: Keep-Alive
c、响应体
将客户想要的内容进行返回二、HTTP服务器简要模型
1、tcp应用:http传输
from socket import * #处理请求,返回响应 def handleClient(connfd): print("Connect from",connfd.getpeername()) request = connfd.recv(4096) #按行进行分割 requestHeadlers = request.splitlines() for line in requestHeadlers: print(line) #无论什么请求给出相同的响应 try: f = open("./index.html") except IOError: response = "HTTP/1.1 404 not found\r\n" response += '\r\n' response += "===Sorry,The page not found===" else: response = "HTTP/1.1 200 OK\r\n" response += '\r\n' for i in f: response += i finally: connfd.send(response.encode()) connfd.close() #网络链接控制流程 def main(): sockfd = socket() sockfd.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) sockfd.bind(('0.0.0.0', 8000)) sockfd.listen(5) while True: print("Listen to the port 8000.....") connfd, addr = sockfd.accept() #处理具体客户端请求 handleClient(connfd) if __name__ == "__main__": main()说明:
sockfd.bind(('0.0.0.0', 8000)),可以在局域网中任何电脑访问此服务器;
sockfd.bind(('127.0.0.1', 8000))和sockfd.bind(('localhost', 8000)),只能在本机进行访问。
2、index.html文件
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> 这是一个网页 </body> </html>说明:同http服务器代码放在同一个目录下
三、附录:目录
相关文章推荐
- 网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结
- Http(应用层)-->Socket-->TCP/UDP(传输层)--Socket>-->Http(应用层)
- 计算机网络:传输层(TCP/UDP) 应用层(HTTP) 知识总结
- HTTP应用层与TCP/IP传输层的区别
- ASP.Net中自定义Http处理及应用之HttpModule篇
- JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
- TCP/IP笔记 四.应用层(3)——HTTP
- WCF http net.tcp 多协议 设计模式 4(总结)
- Python实现基于HTTP文件传输实例
- 稳扎稳打Silverlight(53) - 4.0通信之对WCF NetTcpBinding的支持, 在Socket通信中通过HTTP检索策略文件, HTTP请求中的ClientHttp和BrowserHttp
- 稳扎稳打Silverlight(53) - 4.0通信之对WCF NetTcpBinding的支持, 在Socket通信中通过HTTP检索策略文件, HTTP请求中的ClientHttp和BrowserHttp
- 稳扎稳打Silverlight(53) - 4.0通信之对WCF NetTcpBinding的支持, 在Socket通信中通过HTTP检索策略文件, HTTP请求中的ClientHttp和BrowserHttp
- TCP/IP源码学习(47)——socket与VFS的关联(1) 2 http://blog.chinaunix.net/uid-23629988-id-3080166.html
- ASP.Net中自定义Http处理及应用
- Python实现基于HTTP文件传输实例
- 测试wcf的http和tcp绑定以及非wcf的命名管道传输文件速度对比
- ASP.Net中自定义Http处理及应用之HttpHandler篇
- tcp ip在线阅读http://www.52im.net/topic-tcpipvol1.html
- JAVA中数据库操作的各种方式与设计模式的应用(http://blog.csdn.net/wangyihust/archive/2006/01/14/579613.aspx)
- TCP/IP笔记 四.应用层(3)——HTTP