zoukankan      html  css  js  c++  java
  • 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')      # 响应体
    '''
  • 相关阅读:
    sql语句之group_concat函数
    Yii2 PHPExcel在linux环境下导出报500错误
    使用 PuTTY 时遇到错误:“expected key exchange group packet from server”
    Yii2 执行Save()方法失败,却没有错误信息
    js
    导航切换到当前页的时候,会触发这个方法
    Yii2 场景scenario的应用
    Yii2 hasMany 关联后加条件
    设置Yii2发生错误返回json
    Exception 'ReflectionException' with message 'Class require does not exist'
  • 原文地址:https://www.cnblogs.com/lichunke/p/9946300.html
Copyright © 2011-2022 走看看