-
正则表达式对象的
search
和match
方法有什么区别?
search
:匹配当前字符串中符合正则表达式中第一个符合的字串,没有返回None
match
:匹配当前字符串的开头是否是该正则表达式,没有返回None -
当多个线程竞争一个对象且该对象并非线程安全的时候应该怎么办?
https://blog.csdn.net/u013516966/article/details/44733899
-
说一下死锁产生的条件以及如何避免死锁的发生。
https://www.cnblogs.com/sthu/p/9660914.html
-
请阐述TCP的优缺点。
优点:可靠,稳定,TCP在传输之前都会经过三次握手来建立连接,数据传输完以后会自动断开连接释放资源。缺点:效率低,占用资源高,易被攻击。传输数据必须先建立连接,在传输数据的时候,确认机制、重传机制、拥塞机制等都会消耗大量的时间。TCP三次握手机制也会导致TCP容易被利用,实现DOS、DDOS、CC等攻击。
-
HTTP请求的GET和POST有什么区别?
- GET是从服务器请求数据,POST是往服务器发送数据。
- GET的安全性非常低,POST安全性高。
- GET是把参数添加到URL中传递给服务端,POST是将数据放在HTML的body中发送给服务端的,用户看不到该过程。
- GET的参数有长度限制不能大于2kB,POST传送的数据量较大,一般默认不限制
- GET参数为ASCII编码,POST无编码限制.
- GET可以缓存收藏为书签,POST不能被缓存.
-
说一些你知道的HTTP响应状态码。
200:响应成功,请求被正常处理
204:请求被受理但是没有任何资源返回
301:永久重定向
304:临时重定向
400:请求语法有误,服务器无法识别
401:请求不要认证
403:请求的资源禁止访问
404:请求的资源找不到
405:请求的方式不被允许
500:内部服务器错误
501:服务器繁忙 -
简单阐述HTTPS的工作原理。
-
向CA机构申请数字证书然后配置在server端。
-
client端向server端发送HTTPS请求。
-
server端返回数字证书,加密算法和公钥。
-
client端验证接受到的数字证书是否和本地受信任的证书的信息一致。
-
证书验证有效之后,client端生成一个随机数用于对称加密的密钥。
-
client端用证书里面的公钥对自己生成的密钥进行加密。
-
client端向server端发送该密钥的密文。
-
server端通过私钥来解密该密文,拿到对称加密的密钥。
-
之后client和server就可以通过该密钥来进行加密通信。
-
-
阐述Django项目中一个请求的生命周期。
-
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
-
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
-
请说明Cookie和Session之间的关系。
Cookie是一个事件存储在客户端(浏览器),Session是一个对象存储在服务端;Session依赖于Cookie,用户每次请求服务器请求头都会携带Cookie,Cookie中保存了session标识符,服务器通过该标识符获取到跟请求对应的session对象
-
说一下索引的原理和作用。
作用:索引是关系型数据库中用来提升查询性能最为重要的手段,索引就好比是一本书的目录,如果需要查询某个知识点,只需要在目录中查找。原理:索引的底层算法是B-tree(B树),B树是一种自平衡树,能够保持数据有序,这种数据结构能够让查询数据,顺序访问、插入数据删除数据都在对数时间内完成。
-
是否使用过Nginx实现负载均衡?用过哪些负载均衡算法?
https://www.cnblogs.com/1214804270hacker/p/9325150.html
-
一个保存整数(int)的数组,除了一个元素出现过1次外,其他元素都出现过两次,请找出这个元素.
item = [i for i in list1 if list1.count(i) == 1]
-
有12个外观相同的篮球,其中1个的重量和其他11个的重量不同(有可能轻有可能重),现在有一个天平可以使用,怎样才能通过最少的称重次数找出这颗与众不同的球。
https://iask.sina.com.cn/b/1H2zqe38DTcR.html
Python网络知识与Django重要概念
最新推荐文章于 2022-09-10 17:11:33 发布