Python网络知识与Django重要概念

  1. 正则表达式对象的searchmatch方法有什么区别?
    search:匹配当前字符串中符合正则表达式中第一个符合的字串,没有返回None
    match:匹配当前字符串的开头是否是该正则表达式,没有返回None

  2. 当多个线程竞争一个对象且该对象并非线程安全的时候应该怎么办?

    https://blog.csdn.net/u013516966/article/details/44733899

  3. 说一下死锁产生的条件以及如何避免死锁的发生。

    https://www.cnblogs.com/sthu/p/9660914.html

  4. 请阐述TCP的优缺点。
    优点:可靠,稳定,TCP在传输之前都会经过三次握手来建立连接,数据传输完以后会自动断开连接释放资源。

    缺点:效率低,占用资源高,易被攻击。传输数据必须先建立连接,在传输数据的时候,确认机制、重传机制、拥塞机制等都会消耗大量的时间。TCP三次握手机制也会导致TCP容易被利用,实现DOS、DDOS、CC等攻击。

  5. HTTP请求的GET和POST有什么区别?

    1. GET是从服务器请求数据,POST是往服务器发送数据。
    2. GET的安全性非常低,POST安全性高。
    3. GET是把参数添加到URL中传递给服务端,POST是将数据放在HTML的body中发送给服务端的,用户看不到该过程。
    4. GET的参数有长度限制不能大于2kB,POST传送的数据量较大,一般默认不限制
    5. GET参数为ASCII编码,POST无编码限制.
    6. GET可以缓存收藏为书签,POST不能被缓存.
  6. 说一些你知道的HTTP响应状态码。

    200:响应成功,请求被正常处理
    204:请求被受理但是没有任何资源返回
    301:永久重定向
    304:临时重定向
    400:请求语法有误,服务器无法识别
    401:请求不要认证
    403:请求的资源禁止访问
    404:请求的资源找不到
    405:请求的方式不被允许
    500:内部服务器错误
    501:服务器繁忙

  7. 简单阐述HTTPS的工作原理。
    在这里插入图片描述

    1. 向CA机构申请数字证书然后配置在server端。

    2. client端向server端发送HTTPS请求。

    3. server端返回数字证书,加密算法和公钥。

    4. client端验证接受到的数字证书是否和本地受信任的证书的信息一致。

    5. 证书验证有效之后,client端生成一个随机数用于对称加密的密钥。

    6. client端用证书里面的公钥对自己生成的密钥进行加密。

    7. client端向server端发送该密钥的密文。

    8. server端通过私钥来解密该密文,拿到对称加密的密钥。

    9. 之后client和server就可以通过该密钥来进行加密通信。

  8. 阐述Django项目中一个请求的生命周期。
    在这里插入图片描述

  9. Django项目中实现数据接口时如何解决跨域问题。
    settings.py文件中配置

    # 添加跨域请求头应用
    INSTALLED_APPS = [
       	...
        'corsheaders',
    ]
    # 添加跨域中间件
    MIDDLEWARE = [
    	...
    'corsheaders.middleware.CorsMiddleware',
    	...
    ]
    # 跨域允许的请求方式,可以使用默认值,默认的请求方式为:
    # from corsheaders.defaults import default_methods
    # CORS_ALLOW_HEADERS = default_headers
    CORS_ALLOW_METHODS = (
        'GET',
        'POST',
        'PUT',
        'PATCH',
        'DELETE',
        'OPTIONS',
    )
    
    # 允许跨域的请求头,可以使用默认值,默认的请求头为:
    # from corsheaders.defaults import default_headers
    # CORS_ALLOW_HEADERS = default_headers
    CORS_ALLOW_HEADERS = (
        'XMLHttpRequest',
        'X_FILENAME',
        'accept-encoding',
        'authorization',
        'content-type',
        'dnt',
        'origin',
        'user-agent',
        'x-csrftoken',
        'x-requested-with',
        'Pragma',
    )
    
    # 跨域请求时,是否运行携带cookie,默认为False
    CORS_ALLOW_CREDENTIALS = True
    # 允许所有主机执行跨站点请求,默认为False
    # 如果没设置该参数,则必须设置白名单,运行部分白名单的主机才能执行跨站点请求
    CORS_ORIGIN_ALLOW_ALL = True
    
  10. Django项目中如何对接Redis高速缓存服务。
    settings.py文件中配置

    CACHES = {
        'default': {
            'BACKEND': 'django_redis.cache.RedisCache',
            'LOCATION': [
                'redis://120.77.222.217:6379/0',
            ],
            'KEY_PREFIX': '生成key的前缀',  # 这里随便写
            'OPTIONS': {
                'CLIENT_CLASS': 'django_redis.client.DefaultClient',
                'CONNECTION_POOL_KWARGS': {
                    'max_connections': 256,
                },
                'PASSWORD': '密码',
            }
        },
        "my_redis": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            'CONNECTION_POOL_KWARGS': {
                    'max_connections': 256,
                },
            'PASSWORD': '123456',
        }
     },
    }
    # 使用引擎
    SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
    # 设置过期时间86400秒
    SESSION_COOKIE_AGE = 86400
    
  11. 请说明Cookie和Session之间的关系。

    Cookie是一个事件存储在客户端(浏览器),Session是一个对象存储在服务端;Session依赖于Cookie,用户每次请求服务器请求头都会携带Cookie,Cookie中保存了session标识符,服务器通过该标识符获取到跟请求对应的session对象

  12. 说一下索引的原理和作用。
    作用:索引是关系型数据库中用来提升查询性能最为重要的手段,索引就好比是一本书的目录,如果需要查询某个知识点,只需要在目录中查找。

    原理:索引的底层算法是B-tree(B树),B树是一种自平衡树,能够保持数据有序,这种数据结构能够让查询数据,顺序访问、插入数据删除数据都在对数时间内完成。

  13. 是否使用过Nginx实现负载均衡?用过哪些负载均衡算法?

    https://www.cnblogs.com/1214804270hacker/p/9325150.html

  14. 一个保存整数(int)的数组,除了一个元素出现过1次外,其他元素都出现过两次,请找出这个元素.

    item = [i for i in list1 if list1.count(i) == 1]
    
  15. 有12个外观相同的篮球,其中1个的重量和其他11个的重量不同(有可能轻有可能重),现在有一个天平可以使用,怎样才能通过最少的称重次数找出这颗与众不同的球。

    https://iask.sina.com.cn/b/1H2zqe38DTcR.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值