zoukankan      html  css  js  c++  java
  • HTTP协议

    1. Http协议特性

    1.1 基于TCP/TP

    HTTP协议是基于TCP/IP协议智商的应用层协议

    1.2 基于请求-响应模式

    HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并 返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有 接收到请求之前不会发送响应

    1.3 无状态保存,短连接

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

    1.4 无连接

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

    2. HTTP请求协议和响应协议

    HTTP协议包含:

    1. 由浏览器发送到服务器遵循的请求协议
    2. 服务器发送数据到浏览器遵循的相应协议

    2.1 请求协议

    2.1.1 请求格式

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

    2.2 响应协议

    2.2.1 响应格式

    2.2.2 响应状态码

    状态码是当客户端向服务器端发送请求时, 返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现异常了。例如状态码 200 OK,由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:


    2.2.3 示例代码
    1. 服务端.py
    1. # filename: 服务端.py 
    2. import socket 
    3.  
    4. sock=socket.socket() 
    5. sock.bind(("127.0.0.1",8808)) 
    6. sock.listen(5
    7.  
    8. while True
    9. print("server waiting....."
    10. conn,addr=sock.accept() 
    11. data=conn.recv(1024
    12. print("data",data) 
    13.  
    14. # 读取html文件 
    15. with open("login.html","rb") as f: 
    16. data=f.read() 
    17.  
    18. conn.send((b"HTTP/1.1 200 OK %s"%data)) 
    19. conn.close() 
    1. login.html
    1. <!DOCTYPE html> 
    2. <html lang="en"> 
    3. <head> 
    4. <meta charset="UTF-8"> 
    5. <title>Title</title> 
    6. </head> 
    7. <body> 
    8.  
    9. <form action="" method="post"> 
    10. 用户名 <input type="text" name="user"> 
    11. 密码 <input type="password" name="pwd"> 
    12. <input type="submit"> 
    13. </form> 
    14.  
    15. </body> 
    16. </html> 
  • 相关阅读:
    新概念第二册(1)--英语口语听力课1
    外企面试课程(一)---熟悉常见的缩略词
    公司 邮件 翻译 培训 长难句 结课
    workflow
    公司 邮件 翻译 培训 长难句 20
    公司 邮件 翻译 培训 长难句 19
    Engineering Management
    公司 邮件 翻译 培训 长难句 18
    公司 邮件 翻译 培训 长难句 17
    第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
  • 原文地址:https://www.cnblogs.com/sama/p/9286827.html
Copyright © 2011-2022 走看看