基于socket对象模拟web应用程序

本文探讨了应用程序的两种主流模式:C/S(客户端/服务器端)与B/S(浏览器端/服务器端)。深入分析了这两种模式的特点,特别是在网络编程环境中,如何使用socket对象模拟web应用程序,以及浏览器作为socket客户端访问服务器的过程。

应用程序有两种模式C/S、B/S。

C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。
而B/S就是浏览器端/服务器端应用程序,
这类应用程序一般借助谷歌,火狐等浏览器来运行。
WEB应用程序一般是B/S模式。
在网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端

基于socket对象模拟web应用程序,浏览器访问服务器地址,页面显示自定义内容

import socket

"""
基于socket对象模拟服务器,模拟web应用程序(web应用端接受请求之后响应)

浏览器中地址栏输入绑定端口号:http://127.0.0.1:8080
查看network:
preview 预览功能,接受响应体之后,加载解析过程。
response 从客户端接收来的字符串,响应体。接收img图片的时候还要请求图片src地址。
"""
sock=socket.socket()
sock.bind(('127.0.0.1', 8080))
sock.listen(5)

while True:
    conn,addr=sock.accept()
    data=conn.recv(1024)  # 接受浏览器请求信息,浏览器就是client端口
    print(data)

    # conn.send(b"hello")  # 简单模拟,但是在浏览器端响应无效,因为没有按照格式
    # conn.send(b"HTTP/1.1 200 OK\r\n\r\nhello")  # 左边 版本/状态码 响应首行和响应体,之间间隔。
    # conn.send(b"HTTP/1.1 200 OK\r\n\r\n<h1>hello</h1>")  # 浏览器加载标签

    # 一直这么写下去很low,先写好html文件,然后读取发送
    with open("index.html","rb") as f:
        data=f.read()
    conn.send(b"HTTP/1.1 200 OK\r\n\r\n %s" % data)

    conn.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值