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\r\nstatus: 200\r\nContent-Type:text/html\r\n\r\n".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协议.

  3.无状态保存:

  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种。

猜你喜欢

转载自www.cnblogs.com/wqzn/p/9825113.html