• web应用


    一、web应用程序

    web应用程序是一种可以通过浏览器访问的应用程序
        最大的好处就是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件
        
    应用程序有两种模式
        C/S模式:客户端/服务端程序,这类程序一般独立运行
        B/S模式:浏览器/服务端程序,这类程序一般借助浏览器来访问服务端,
    
    web应用程序一般是B/S模式。web应用首先是应用程序和标准的程序语言,和C、C++等编写出来的程序没有什么本质区别,然而web应用又有自己独特的地方,就是它是基于web的,而不是传统方法运行的,换句话说,它是典型的浏览器/服务器架构的产物

    二、web应用程序的优点

      1、网络应用程序不需要任何复杂的展开过程,所需要的只是一个适用的浏览器

      2、网络应用程序通常耗费很少的用户磁盘空间(浏览器缓存)

      3、它们不需要更新,因为所有的新特性都在服务器上执行,从而自动传达到用户端

      4、因为它们是在网络浏览器窗口中运行,所以大多数情况下它们是通过跨平台使用(windows、linux、mac)

    三、web应用程序的缺点

      1、网络应用程序强调浏览器的适用性。如果浏览器没有提供特定的功能,或者弃用特定的平台或操作系统版本导致不适用,就会影响大量用户

      2、网络应用程序依靠互联网远程服务端的应用文件。因此当连接出问题时,应用将不能正常使用

      3、许多网络应用程序不是开源的,只能依赖第三方提供服务,因此不能针对用户定制化、个性化,而且大多数情况下用户不能离线使用,因而损失了很多灵活性

      4、它们完全依赖应用程序服务商的可及性。如果公司倒闭,服务停止使用,用户也无法追索以前的资料。对比而看,即使软件制造商倒闭了,传统的安装软件也可以继续运行,尽管不能再更新或有其他用户服务

      5、相似地,提供方公司对软件和其他功能有更大的控制权。只要他们愿意就能为软件添加新特性,即使用户想等bugs先解决再更新。跳过较差的软件版本也不可能了。公司可以强制不受欢迎的特性给用户,也可以随意减少带宽来削减开始。

      6、公司理论上可以检索任何的用户行为,这有可能引起隐私安全问题

    四、B/S架构的优点

    浏览器/服务器架构能够很好的应用在广域网上,成为越来越多企业的选择。浏览器/服务器相对于其他应用体系结构有以下优点:

    1、这种架构采用Internet上标准的通信协议(通常是TCP/IP协议)作为客户端通服务器通信的协议。这样可以使用Internet任意位置的用户都能正常访问服务器。对于服务器来说,通过相应的web服务和数据库就可以对数据进行处理,对外采用标准的通信协议,以便共享数据

    2、在服务器上对数据进行处理,就处理结果生成网页,以便客户端直接下载

    3、在客户端浏览器上对数据的处理进一步简化,将浏览器作为客户端应用程序,以实现对数据的显示,不再需要客户端单独编写和安装其他类型的应用程序。这样,在客户端只需要安装一套内置浏览器的操作系统,就可以实现对服务器上数据的访问,而浏览器是计算机的标准设备

    本质上,浏览器是一个socket客户端,服务器是一个socket服务端

    五、基于socket的简单web应用(BS)

    import socket
    
    socker_server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    socker_server.bind(('127.0.0.1',8008))
    socker_server.listen(5)
    
    while True:
        conn,client=socker_server.accept()
        data=conn.recv(1024)
        print(data)
        conn.send('HTTP/1.1 200 OK
    content-type:text/html
    
    <h1>server response browser</h1>'.encode('utf8'))
        conn.close()

     

    import socket
    import time
    
    socker_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    socker_server.bind(('127.0.0.1', 8008))
    socker_server.listen(5)
    
    while True:
        conn, client = socker_server.accept()
        data = conn.recv(1024)
        print(data)
        curtime = str(time.strftime("%Y-%m-%d %X"))
        with open('time.html', 'rt', encoding='utf-8') as f:
            data = f.read()
            data = data.replace('@@@', curtime)
        conn.send(('HTTP/1.1 200 OK
    conten-type:text/html
    
    %s' % data).encode('utf-8'))
        conn.close()
    动态网页字符串替换
    <!DOCTYPE html>
    <html lang="zh">
    <head>
        <meta charset="UTF-8">
        <title>显示当前系统时间</title>
    </head>
    <body>
    <h1>@@@</h1>
    </body>
    </html>
    html页面

    六、http协议特性

    1、基于TCP/IP协议之上的应用层协议

    2、基于请求-响应模式(客户端发出请求,服务端回复响应)

    3、无状态保存

      HTTP是一种不保存状态,即无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应不做持久化处理

    4、无连接

      无连接的含义是限制每次连接只处理一个请求。服务器处理完客户端的请求,并收到客户端应答后,即断开连接。采用这种方式可以节省传输时间

    七、http请求协议和响应协议

    1、请求协议

    '''
    GET / HTTP/1.1
           # 请求首行 格式(请求method 请求路径 HTTP版本)
    # 第二行开始
     :
    Host: 127.0.0.1:8008
    
    Connection: keep-alive
    Pragma: no-cache
    
    Cache-Control: no-cache
    
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
    
    Accept: image/webp,image/apng,image/*,*/*;q=0.8
    
    Referer: http://127.0.0.1:8008/
    
    Accept-Encoding: gzip, deflate, br
    
    Accept-Language: zh-CN,zh;q=0.9
    
    Cookie: CSRF-Token-WNNCC=SThJAhyra2qTrfTMSu3ztRompiiTGaNW
    
    
    # 到 
    
    
     则是请求头  
    
    # 
    
    后则是请求体 
    
    '''

    2、响应协议

    '''
    HTTP/1.1 200 OK
           # 响应首行(响应协议/版本号 状态码 描述字符串)
    # 第二行开始
    conten-type:text/html
    
       # 到
    
    ,则是响应头
    %s' % data.encode('utf-8')      # 响应体
    '''
  • 相关阅读:
    Java JMX 监管
    Spring Boot REST(一)核心接口
    JSR 规范目录
    【平衡树】宠物收养所 HNOI 2004
    【树型DP】叶子的颜色 OUROJ 1698
    【匈牙利匹配】无题II HDU2236
    【贪心】Communication System POJ 1018
    【贪心】Moving Tables POJ 1083
    Calling Extraterrestrial Intelligence Again POJ 1411
    【贪心】Allowance POJ 3040
  • 原文地址:https://www.cnblogs.com/lichunke/p/9946300.html
Copyright © 2020-2023  润新知