zoukankan      html  css  js  c++  java
  • 学习Django之前戏

    1. http协议 超文本传输协议
      请求和响应

    2. 请求格式

      GET / HTTP/1.1
      User-Agent:....
      xx:xx
       空格
      请求数据  (get 么有数据,post有)
      
      示例:
      GET / HTTP/1.1
      Host: 127.0.0.1:8001
      Connection: keep-alive
      Cache-Control: max-age=0
      Upgrade-Insecure-Requests: 1
      User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
      Accept-Encoding: gzip, deflate, br
      Accept-Language: zh-CN,zh;q=0.9
        空格
      (请求数据)
      # post
      POST / HTTP/1.1
      Host: 127.0.0.1:8001
      Connection: keep-alive
      Content-Length: 15
      Cache-Control: max-age=0
      Origin: http://127.0.0.1:8001
      Upgrade-Insecure-Requests: 1
      Content-Type: application/x-www-form-urlencoded
      User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
      Referer: http://127.0.0.1:8001/
      Accept-Encoding: gzip, deflate, br
      Accept-Language: zh-CN,zh;q=0.9
      
      username=sdfasd
      
    3. 响应格式

      HTTP/1.1 200 ok
      k1:v1
      k2:v2
      	空格(
      )
      响应数据
      
      代码体现;
      conn.send(b'HTTP/1.1 200 ok
      k1:v1
      
      ')  # 响应格式前部分
      with open('test.html', 'rb') as f:
      	data = f.read()
      conn.send(data)   # 响应数据(后部分)
      
    4. URL:

      URL:  https://www.cnblogs.com/clschao/articles/9230431.html
          传送协议。
          层级URL标记符号(为[//],固定不变)
         
          服务器。(通常为域名,有时为IP地址)
          端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
          路径。(以“/”字符区别路径中的每一个目录名称)  /clschao/articles/9230431.html
          查询。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)
          https://www.cnblogs.com/clschao/articles/9230431.html?name=chao&age=18
      
    5. 请求方法

      get post
          GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456.(请求头里面那个content-type做的这种参数形式,后面讲) POST方法是把提交的数据放在HTTP包的请求数据部分中.
          GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
          GET与POST请求在服务端获取请求数据方式不同,就是我们自己在服务端取请求数据的时候的方式不同了
      
      	常用的get请求方式:浏览器输入网址  ,a标签 ,form标签 method='get'
      	post请求方法,一般都用来提交数据.比如用户名密码登录	
      
      	其他方法:HEAD PUT DELETE TRACE OPTIONS CONNECT PATCH
      
    6. 状态码

          1xx消息——请求已被服务器接收,继续处理
          2xx成功——请求已成功被服务器接收、理解、并接受
          3xx重定向——需要后续操作才能完成这一请求
          4xx请求错误——请求含有词法错误或者无法被执行
          5xx服务器错误——服务器在处理某个正确请求时发生错误
      
    7. http协议特点

      1. 基于 请求响应 的模式
      2.无状态保存
      3.无连接 connection:keep-alive
      
      请求:request
      响应:response
      
    8. 网页那个小图标

      <link rel="icon" href="xx.ico">
      
    9. wsgiref

      from wsgiref.simple_server import make_server
      
      def application(environ,start_response):
      	start_response('200 OK',[('Content-Type','test/html'),('k1','v1')])
        print(environ)
        print(environ['PATH_INFO'])
        
        # 要传输的数据
        a = b'xxxx'
        return [a]
      
      httpd=make_server('127.0.01',8080,application)
      print('Serving HTTP on port 8080...')
      httpd.serve_forever()
        
      
    10. 数据库的操作

      import pymysql
      
      
      conn = pymysql.connect(
      	host='127.0.0.1',
        	port=3306,
        	user='root',
        	password='123',
        	database='day53',
        	charset='utf8'
      )
      
  • 相关阅读:
    网络七层协议之部分协议详解
    C/C++书籍分享(百度网盘版)
    poi导出excel实例
    java map去除空值和null,等一些好用的工具类
    mysql查询出来的sum结果后边有.0如何去除
    java form 表单提交多条数据到后台!
    使用jsp链接jdbc数据库并将数据显示出来
    对接短信平台wsdl获取代码方式!并使用
    Flutter! 记录一下艰难的Flutter+vscode+真机,第一次调试成功
    微信公众号开发-微信公众号网页H5静默授权!!!
  • 原文地址:https://www.cnblogs.com/he-qing-qing/p/11234483.html
Copyright © 2011-2022 走看看