网课学习记录
少年就是少年,少年不是由年龄决定,而是由心态。他们看春风不喜,看夏蝉不烦,看秋风不悲,看冬雪不叹,看满身富贵懒察觉,看不公不允敢面对。只因他们是少年。
——俄国·陀思妥耶夫斯基《少年》
html和css
看得懂一点大致就行(不学怎么看懂(手动狗头))
一些css属性
left:距离最左边多少
top:距离最顶端多少
position:定位方式(relative(相对正常位置,默认位置),fixed(相对于浏览器框框),absolute(相对于父元素))
height:高多少
width:宽多少
z-index:图层位置,图层越高优先显示
js
Javascript
- javascript和java没有任何关系,本名
livescript - jS有很多的框架:bootstrap,vue,nodejs
等 - jS是能够给HTML元素写点好东西的语言
- 它写在
JS的一些杂项又很重要常用的点
什么变量都用var变量名=XXX;
console.log(“我想要输出这段话或者这个变量”)(用于调试代码)
documen对象,可以直接调用,它这个对象代表整个HTML页面(这个玩意
儿)
alert(想要弹出的内容)函数,用于在界面弹出一个提示窗口
定义函数:function 函数名(变量名)
{
你的函数功能;retum可有可无
}
必须要会的DOM树
DOM树说白了就是JS怎么去找到你想要操作的HTML元素的。
JS获取HTML元素的方法:
假设HTML元素 :< img src=“61.png” class="background"id=“k”>
1:var element = doucument.getElementById(“k”)
2:var element = doucument.getElementsByClassName
getElementById
getElementsByClassName
getElementsByName
getElementsByTagName
getElementsByTagNameNS
以上都是把通过某种方式获取的HTML元素复制给一个element变量
修改属性获取到的HTML元素的属性:element.src="yyds.png’;
当我获取到一个元素之后,它的属性就可以直接用 名称.属性名 的方式修改
DOM掌握这么多足够了
一些JS常用的元素内的方法
假设存在元素 <dlv id=“kmx’>114514
获取元素:war element =document.getElementByld(kmx”)
elemenl.innerHTML="新的两瓣中间夹的那一堆字”,
注意这个innerhtml不止可以改变内部的文字,同样可以向里面加入标签
element.onclick = function()
element.onchange = function()
还有:mouseover,mouseout,resize等等
elemenl.style.CSS属性名称=新的值
后端篇上
数据库
数据库就是一个能被特定的语言很方便的调用的,一个炸过的好像execl表格的东西
MYSQL和SQL server这些都是常用的数据库
大家基本都通用一个语言:SQL语言去操作这些数据库
SQL就是英语里的状语从句
使用国产phpstudy软件去自动配置环境
目前是加快入门的阶段,没必要花过多的时间在配置各种环境上.
在phpstudy的安装日录,找到extension文件夹,找到数据库女件夹,打开bin文件夹,在win地址栏输入cmd即可在命令行打开
SHELL:shell就是指的一个可以交互的命令行控制界面,cmd界面就是win的一个shell,可以在shell里输入命令,然后控制的东西就会给你交互
win+r输入cmd也可以打升命令行
mysql一些基本知识
mysql-u用户名-P
(用密码登录某个用户)
root用户:任何一个系统都会有一个最基本的用户,这个基本用户往往拥有绝对的对系统的操作或者控制权限,一般它的名字都叫root。入侵一
个系统最重要的就是拿到root用户的权限
端口:端口就是一个虚拟的,脑瓜子假想的一个数据通道,在网络中,无论任何的数据交换都要指定目标地址和传输的端口
3306端口:mysql数据库常用的默认端口就是3306端口
虽然sql语言不规定区分大小写与否,但是在linux操作系统上数据库还有表名这些都要区分大小写,建议最开始就区分.
SQL语言
基本规范:
sql语句结尾要加;
建议区分大小写
数据库基本结构:数据库+表·>列->单元
数据库:
create database 数据库名;
drop database 数据库名:
use 数据库名;
数据类型:
int整数 float浮点数(小数)double 双精度浮点数 char 字符串 varchar长的字符串
重要特性:
primary key 主键,唯一并且不能为空
unique 唯一
not null 不能为空
auto_increment 自增
*符号在sql语言上代表所有
基础语句:
use 一个数据库
select 要查的数据from 表名字 where 列名字 = 某个值;(selecr什么就查什么)
insert into 表名字(列名1,列名2)values(值1,值2);(向对应的列插入某个值)
update 表名字 set 列名1 = 某个值 where 列名2 = 某个值;(更新当列2时的列1)
delete from 表名 where 列名 = 某个值;(删除)
创建表:
CREATE TABLE students
(
id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
address VARCHAR(200) NOT NULL
);
特殊的一些字:
%:代表任意字符
like:
SELECT*from 列1 WHERE 列2 LIKE ‘%COM’;
(从列1获取所有列2中结尾为COM时的数据)
students.student_id
union:再来一句
select*from table1 union select * from table2;
and和or:就是它本身的意思
order by:以什么排序
后端篇下
后端
后端就是一堆处理用户数据,服务器数据的软件,然后处理完之后就会向客户返回一些处理结果(前端)
能做后端的语言:c,c++,java,python,kotlin,golang等等
后端的基本思路:接受请求,处理请求的数据,发送数据包传给前端。
写后端就是写一个程序按程序员所想用来处理这些请求的信息
后端的代码理论上客户是不能看到的
PHP杂项
解释器语言:存在一个软件,用于把你的代码转换成一个可以运行的程序(类似于打开方式)
php文件结尾是.php
php写在一个:<?php...(你的代码)...?> 这样的标签里
php的每一句语句后面都要加;
php定义变量用$符号来定义(类似于js)
php代码中兼容:html,css,js代码的存在,这也注定了他方便灵活的特征
php中的预制变量用 $_变量类型[‘变量名’] 来表示
一些必须会的
PHP中有很多能够补充许多有用的函数的 库,php的 库 在安装之后在配置文件解锁
phpinfo():展示本机的php信息(所有信息)
is…():长成这样的函数用于判断括号内的条件是否符合函数所需要的
mysql_connect(主机名,用户名,密码,数据库,端口) 返回数据库信息
mysql_query(数据库信息,一段sql语句) 执行一段sql语句
mysql_close(数据库信息)关闭数据库
所有的mysql库在5代以后都更名为mysql
$_GET[‘xxx’]: 属于储存从前端传过来的GET请求信息
$_POST[‘xxx’]:
echo"打印一段话" :可以在网页打印一段话,在echo中支持前端语言
高级一点的
php代码审计中常有
preg_match_all(正则表达式、匹配字符串、匹配到的东西放入数组) 返回总数
preg_replace(正则表达式、替换成什么、匹配字符串)
file_get_contents(路径):读入一个文件并且返回为字符串
file_put_contents(路径、写入的数据、怎么写入):向文件写入数据
->:调用引用传递参数的子程序的方法:数百了就是用来调用指定类的一个方法或这属性
function 函数名(参数):用于定义函数,和js的一样
htmlspecialchars():将特定字符转变为html实体
&(和号)成为&
"(双引号) 成为"
'(单引号) 成为'
<(小于) 成为⁢
>(大于) 成为>
脚本篇
python一些小知识
脑瓜子非常牛的开发出来的一门非常牛的语言
python2.x和python3.x差距挺大
python几乎可以说是电脑真的那给你用了
python是一门解释器语言
python使用内置的pip.exe安装额外的库,所以他要扩展使用非常的方便
python几乎可以满足对计算机所需要的所有功能的开发
python语法基础
python没有大括号,采用缩进的方法来代替大括号的功能
python导入安装好的库:import 库名字
python没有main函数,所有的定义还有函数的使用都按照从上往下的顺序执行
为了规范也可以自己定义main()函数或说明使用:
if_name_==“main”:的格式来区分是否是项目中的主代码
python有很多的全局变量代表了一些特殊的地址或者内容:
def_init_(self.name.dog_type):
self.anme=name
self.type=dog_type
python定义变量直接写:变量名=值 定义函数:def 函数名(参数。。。);
python 的引入了新的for用法,使得while和for的关系区分开。
python的变量类型
python的字符串:
python的list(列表):list = [‘abcd’,786,2.23,‘round’,70.2],列表中元素可变
步长
元组:tuple = (‘abcd’,786,2.23,‘round’,70.2)不可修改
集合: set = {‘abcd’,786,2.23,‘round’,70.2}不可重复
字典:可以查
python用起来
python中的b’xxxxxx’代表了一段bytes流,使用字符内置的decode()方法就可以转换成正常可读的字符串
字符串内置的replace(要替换的字符串,要替换成什么)方法可以替换字符串特定的值
list列表的数据类型使用append(要添加的元素)犯法可以添加元素
特殊用法:
if xxx in 字符串/列表/字典:
for xxx in 字符串/列表/字典: 将列表中的每一个按次序赋值给xxx,并且带入到循环中
web最常用的库
最重要的:requests
pip install requests 安装requests库
发送请求的语句:
headers = {‘User-Agent’:‘Mozilla/5.0’} # 设置请求头
params = {‘key1’:‘value1’,‘key2’:‘value2’} # 设置查询参数
data = {‘username’:‘example’,‘password’:‘123456’} # 设置请求体
response =
requests.post(‘http://www.runoob.com’,headers=headers,params=params,data=data)
response 对象的信息
print(response.status_code)
#查看响应头部字符编码
print(response.encoding)
#查看完整url地址
print(response.url)
#查看响应内容,response.text返回的是Unicode格式的数据
print(response.text)
这个返回整个网页的信息,可以用爬虫相关的库(bs4)来爬取网页信息
网络基础
网络和协议
五层网络模型
物理层
链路层:帧
网络层:arp协议,IP协议
传输层:TCP/UDP
应用层:HTTP/FTP
域名和dns
要访问一个公网上的服务器或者应用,当然要知道他的地址
在公网上标识地址的东西IP地址
但是IP地址的特点太少,用户很难记住所有的自己喜欢的网页
域名:用于IP地址的代替,方便用户记忆
dns解析:一种解析域名为IP地址的方式
dns解析的本质:向公网上一个域名解析服务器(114.114.114.114)发送解析请求,这个服务器收到请求之后就会把这个域名转换为域名绑定的IP地址
端口
端口并不是一个真是存在的.
端口是通过程序实现的一种网络分流方式
端口的范围:0-65535
端口号是用16为二进制表示的:所以可以有2^16个不同的端口号,机65536个。其中,0被保留位无效端口
常见的端口:80(http),443(https),20(ftp),21(ftp控制),22(ssh),3306(数据库),8080
一些网络请求
GET请求和POST请求的区别:
GET请求参数是通过URL进行传运的,POST请求的参数包括在请求体当中
POST请求比GET更安全,GET请求参数直接暴露在URL中
GET请求在URL中传输的参数是有长度限制的G(在HTTP协议中并没有对URL的长度进行限制,限制是特定的浏览器以及服务器对他的限制,不同浏览器限制的长度不同。),POST对长度没有限制。
GET请求进行url编码(百分号编码),POST请求支持多种编码方式。
GET请求在浏览器回退的时候是无害的,POST请求会再次提交数据。
一些重大区别
对于GET请求,浏览器会把http header和data一起发送出去,服务器响应200,请求成功
对于POST请求浏览器先发送header,服务器会响应100(已经收到请求的第一部分,正在等待其余部分),浏览器再次发送data,服务器返回200,请求成功
GET方法由于受到URL长度的限制,只能传递大约1024字节;POST传递的数据量可以达到2M;
证书
证书的方式是一种点对点认证机制
常见的:公钥加密,私钥解密
客户通过证书提供的公钥加密一串随机串,这个加密方式只有拥有私钥的人才能够解谜加密之后的内容,服务器收到这个加密之后的随机串用私钥解谜。
然后双方开始用这个随机串进行加密通信
这种公钥私钥的加密通常利用一些数学上的难题防止被破解:
大素数的难解性(RSA),椭圆曲线的难解性(ECC)等
参考文献出处:看名笑


被折叠的 条评论
为什么被折叠?



