tcp服务器根据路径返回不同网页静态版

原创 2018年04月16日 23:52:32
import socket
import re


def main():

#服务器tcp服务器对象
tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)


#设置我们的端口地址重用
tcp_server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)


#绑定端口号
tcp_server.bind(("",6789))
#改成被动模式
tcp_server.listen(True)
#循环去处理客户请求
while True:
client,addr = tcp_server.accept()
# print(addr)


#接收数据
data = client.recv(1024).decode()
head_lines = data.splitlines()
try:
print(head_lines[0])
#GET /index.html HTTP/1.1
#使用正则去获取地址
re_match = re.match(r'[^/]+(/[^ ]*)', head_lines[0])
#判断是否匹配了
if re_match: #匹配 了
file_name = re_match.group(1)
#如果是/那么去首页
if file_name == "/":
file_name = "/index.html"
except Exception as e:
print(e)  #工作中是记录到文件

#返回数据
#响应头
#空行
#响应体
try:
headers = "HTTP/1.1 200 OK\r\n"
#会根据不同的地址返回不的内容
#打开文件写读文件内容
with open("./html%s"%file_name,'rb') as f:   #这样写有一个好处,如果是图片就不会有问题
body = f.read() #读取文件

# body = "show page is find!"

# content = headers +"\r\n" +body
content = headers +"\r\n"

# client.send(content.encode("utf-8"))
client.send(content.encode("utf-8"))
client.send(body)
except Exception as e:
print(e)
#返回一个404的正常显示的页面
head = "HTTP/1.1 404 NOT FIND\r\n"
body = "not find page!"
content = head + "\r\n" + body

client.send(content.encode("utf-8"))

#关闭客户端
client.close()
#关闭服务器
tcp_server.close()

if __name__ == '__main__':
    main()

Node.js服务器端编程实践(二):服务器如何根据不同的URL路径请求做出应答

服务器端对不同的URL路径http请求所作出不同的应答(response)
  • cai2016
  • cai2016
  • 2016-06-12 13:01:30
  • 1135

HTTP核心模块配置静态web服务器 2-文件路径的定义

2,文件路径的定义 2-1 以root方式设置资源路径 语法:root path; 默认:root html; 配置块:http,server,location,if 例...
  • foolishfu
  • foolishfu
  • 2016-10-26 20:29:38
  • 350

nginx 不同目录静态资源位置 通过二级目录(路径)映射不同的反向代理

静态资源 location ^~ /console/ {     root /console;     expires  30d; } location ~* \.(gif|jpg|jpeg|bm...
  • a1161638319
  • a1161638319
  • 2017-11-02 20:43:15
  • 1111

根据IP显示不同网页

function cip(sip) tip=cstr(sip) sip1=left(tip,cint(instr(tip,".")-1)) tip=mid(tip,cint(instr(tip,"."...
  • snlixing
  • snlixing
  • 2007-05-28 09:01:00
  • 936

nginx 根据不同url反向代理到不同服务器

if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {             set $mobile_request...
  • moliyiran
  • moliyiran
  • 2017-04-11 15:53:34
  • 1065

nginx根据路径设置静态资源

nginx根据特定路径访问服务器静态资源 最近有一个需求,就是url指定路径下访问服务器的静态资源。简单配置下却总是报404错误。说明是nginx找不到你配置的资源。 nginx 代理常见的静态资源配...
  • yyoc97
  • yyoc97
  • 2017-09-14 16:15:16
  • 4732

使用 XML 静态读取网页

 代码如下:  var oDiv //添加用的节点 var nP  //DIV的 padding-left var xh  //xmlhttp function getXML() {  oDiv = ...
  • baby97
  • baby97
  • 2006-06-08 11:47:00
  • 834

nginx 实现多域名转发到web服务不同路径

项目背景 我们有个项目前端是用vue 写的,node 起的web服务,中转api到后台接口。 但是项目下有多个平台,可以理解成多个端,每个端都有自己的node web服务,绑定不同端口,如3001 3...
  • starwmx520
  • starwmx520
  • 2016-11-26 17:53:28
  • 5987

java server pages

  • 2012年04月21日 05:55
  • 9.04MB
  • 下载

使用C#开发HTTP服务器系列之访问主页

各位朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com。在这个系列文章的第一篇中,我们着重认识和了解了HTTP协议,并在此基础上实现了一个可交互的W...
  • qinyuanpei
  • qinyuanpei
  • 2016-07-01 20:34:04
  • 9171
收藏助手
不良信息举报
您举报文章:tcp服务器根据路径返回不同网页静态版
举报原因:
原因补充:

(最多只允许输入30个字)