zoukankan      html  css  js  c++  java
  • web应用与http协议

    web:应用:

      Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件。应用程序有两种模式C/S、B/S.

    C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。

    B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助谷歌,火狐等浏览器来运行。

    WEB应用程序一般是B/S模式。Web应用程序首先是“应用程序”,和用标准的程序语言,如java,python等编写出来的程序没有什么本质上的不同。在网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端。

    import socket
    
    def handle_request(client):
    
        request_data = client.recv(1024)
        print("request_data: ",request_data)
    
        client.send("HTTP/1.1 200 OK
    status: 200
    Content-Type:text/html
    
    ".encode("utf8"))
        client.send("<h1>Hello, web!</h1><img src=''>".encode("utf8"))
    
    def main():
    
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.bind(('localhost',8812))
        sock.listen(5)
    
        while True:
            print("the server is waiting for client-connection....")
            connection, address = sock.accept()
            handle_request(connection)
            connection.close()
    
    if __name__ == '__main__':
    
        main()
    案例

    http协议:

      简介:

        HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。

      HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

    1.http协议的特性:

      1.基于请求响应:

        浏览器先给服务器发送请求------->服务器收到浏览器的请求后返回响应.

            

      2.基于TCP/IP:在OSI七层模型中,http属于最高层的应用层,它把TCP/IP进行封装,所以说http协议基于TCP/IP协议.

        回顾:

          osi七层模型:

            1.应用层:使用浏览器或客户端

            2.表示层:看到数据

            3.会话层:保存登录或者会话的状态

            4.传输层:tcp/udp

            5.网络层:IP

            6.数据链路层:MAC

            7.物理层:把数据转化成电信号发送

      3.无状态保存:浏览器访问过后,不会保留之前访问的请求,解决方法:使用cookie/session/用户认证组件来实现(个人理解)

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

    2.请求协议格式:

    url: 协议://域名(IP)+端口(80) /路径 ? 参数()

    路径:域名之后,问号之前的都是路径.

    请求首行:   请求方式url (路径?   get请求参数)

    请求头:   key:value     可以有多个   协议/版本号

    请求体: 数据(只有post请求的时候才会有请求体)

      get请求和post请求:

    • GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的请求体中.
    • GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
    • GET与POST请求在服务端获取请求数据方式不同。

    3.响应协议格式:

    响应首行: 放协议/版本号 状态码 状态码译文/r/n
        http/1.1 200 ok/r/n          #/r/n起分割符的作用,区分作用
    响应头: 以键值对的形式存在,可有有若干个       #Content-Type:text/html /r/n/r/n
    响应体: 渲染到浏览器中的内容. <h1> hello 响应体!</h1>

     响应状态码:

    状态码: 是当客户端向服务器端发送请求时, 返回的请求 结果。借助状态码,用户可以知道服务器端是正常 理了请求,还是出 现了 。状态码如200 OK,以3位数字和原因 成。数字中的 一位指定了响应 别,后两位无分 。响应 别有以5种。

     总结:

    http的四大特性:

    1.基于请求响应

    2.基于TCP/IP

    3.无状态保存

    4.无连接

  • 相关阅读:
    wc项目
    随笔之——伪类选择器:nthchild(n) 与 nthoftype(n)的区别!!!
    随笔之——浮动(float)的影响及其清除、、clear与overflowhidden清除float的不同!!!
    随笔之——各大热门网站search 搜索框的写法,浅析!
    一个简单的注册页面
    自我介绍、目标
    position的6个属性的实验和相关分析
    第二次作业
    第三次作业
    第一次作业
  • 原文地址:https://www.cnblogs.com/wqzn/p/9825113.html
Copyright © 2011-2022 走看看