Django知识总结(一)

1. 简述Http协议?
  - 超文本传输协议
  - 特点:
    - 无状态,请求响应之后,再次发起请求时,不认识。
    - 短连接,一次请求和一次响应就断开连接。
  - 格式:
    - GET请求:输入地址回车:https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F
    请求由两部分组成:请求头和请求体,请求头和请求体通过\r\n\r\n分割,请求头和请求头之间通过\r\n分割。
    """GET /new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F http1.1\r\n

    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36\r\n

    Host:jd.com\r\n\r\n"""
    响应由两部分组成:响应头和响应体,
    b'HTTP/1.1 200 OK\r\nDate: Mon, 05 Nov 2018 01:15:31 GMT\r\nServer: Apache\r\n

    Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT\r\nETag: "51-47cf7e6ee8400"\r\n

    Accept-Ranges: bytes\r\nContent-Length: 81\r\nCache-Control: max-age=86400\r\nExpiresTue, 06 Nov 2018 01:15:31 GMT\r\n

    Connection: Keep-Alive\r\nContent-Type: text/html\r\n\r\n <html><head> .... </html>'

    - POST请求:
    请求由两部分组成:请求头和请求体
    """POST /new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F http1.1\r\n

    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36\r\n

    Host:jd.com\r\n\r\nusername=haoxu666&password=123"""

      响应:
    b'HTTP/1.1 200 OK\r\n

    Date: Mon, 05 Nov 2018 01:15:31 GMT\r\n

    Server: Apache\r\nLast-Modified: Tue, 12 Jan 2010 13:48:00 GMT\r\n

    ETag: "51-47cf7e6ee8400"\r\n

    Accept-Ranges: bytes\r\n

    Content-Length: 81\r\n

    Cache-Control: max-age=86400\r\n

    Expires:Tue, 06 Nov 2018 01:15:31 GMT\r\n

    Connection: Keep-Alive\r\n

    Content-Type: text/html\r\n\r\n

    用户名或密码错误'

2. 你了解的请求头都有什么?
  - User-Agent,设备信息。
  - Host,当前访问的主机名称。
  - referrer,做防盗链。
  - Content-Type: ....


3. 你了解的请求方式有哪些?

  - GET/POST/PUT/PATCH/DELETE/OPTIONS 

4. django请求的生命周期

  浏览器上输入 http://www.oldboyedu.com 地址回车发生了什么?
  - 浏览器输入:http://www.oldboyedu.com 回车
  - DNS解析,将域名解析成IP。
  - 浏览器(socket客户端),根据IP和端口(80)创建连接,发送请求。
  - 服务端接收请求
  - 实现了wsgi协议的模块,如:wsgiref接收到用户请求。
  - 然后将请求转交给django的中间件,执行中间件的process_request(process_view)。
  - 路由系统进行路由匹配。
  - 匹配成功执行视图函数,视图函数进行业务处理(ORM操作数据+模板渲染)
  - 交给中间件的process_response方法
  - wsigref的socket.send,将结果返回给浏览器。
  - 断开socket连接。
  - 浏览器断开连接。


  

猜你喜欢

转载自www.cnblogs.com/wdbgqq/p/10029282.html