My Block


  • Startseite

  • Archiv

HTTP入门

Veröffentlicht am 2018-03-02

1. HTTP(HyperText Transfer Protocol)

http是超文本传输协议,它教客户端如何请求、服务器如何响应。

2. 状态码(背下来)

是服务器对浏览器说的话:

200 通常的成功 OK

204 成功处理请求,但不会刷新页面

表示服务器接收到的请求已经处理完毕,但浏览器页面不会刷新

301 永久重定向 Moved Permanently

请求的网页已永久移动到新位置,永久性重定向

302 Found

HTTP/1.0就有的,临时性重定向,POST方法的重定向在未询问用户的情况下就会变成GET

303 和 307

这两个是HTTP/1.1新加的,都是临时重定向,303和302一样,POST重定向为GET。
307不同的是,把POST转为GET的。

304 Not Modified

表示自从上次请求后,网页未被修改过

400 Bad Request

客户端中存在语法错误。

401 Unauthorized

用户未授权,需要用户验证。

403 Forbidden

服务器已经理解请求,但拒绝执行

404 Not Found

服务器找不到请求的网页。

500 Internal Server Error

服务器遇到错误,无法完成请求。

503 Service Unavailable

由于临时的服务器维护或者过载,暂时无法处理请求

背下来

3. 请求的格式(背下来)

  1. GET请求
    GET / HTTP/1.1
    Host: baidu.com
    Accept: text/html
    (断行)

  2. POST请求
    POST /login HTTP/1.1
    Host: baidu.com
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded
    Content-Length: …

    username=pyz&password=123(第四部分服务器返回的是字符串)

请求里的路径只是路径而已,跟文件没有关系,文件格式只和Accept里写的有关系!!

4.响应的格式

  1. GET的响应
    HTTP/1.1 200 OK
    Content-Length: …
    Content-Type: text/html或application/x-JavaScript; charset=utf-8
    (断行) => 这是第三部分
    <!DOCTYPE html>
    …(第四部分服务器返回的是字符串)

  2. POST
    若密码错了
    HTTP/1.1 401 Unauthorized(若成功了就是200 OK)
    Content-Type: application/json
    Content-Length: …

    {‘’error”}

5. 如何查看响应和请求

  1. 打开Network
  2. 刷新网址
  3. 选中第一个响应
  4. 查看Headers里的Response Headers点view source可以看到响应的前两部分,Request Headers点view source可以看到请求
  5. 查看Response你可以看到响应的第四部分

6. DNS(Domain Name System)

DNS即是通过域名找IP地址
有两个命令:
nslookup www.baidu.com
ping www.baidu.com
输入这两个命令都会返回baidu的IP地址nslookupServer你的路由,相当于路由问了电信公司,于是下面返回的就是baidu的IP地址(baidu有很多台服务器,会返回离你最近几台服务器的IP)。
可以通过修改你电脑上的hosts文件,绕过DNS,直接指定一个域名的IP(因为有时候电信会给你假IP)
修改hosts文件,mac终端:vi ~/etc/hosts
在里面添加一行
123.123.123 baidu.com
保存退出,再ping baidu.com,返回的就会是123.123.123了,这样就绕过了DNS

脚本

Veröffentlicht am 2018-03-01

脚本就是计算机用的剧本,像下面我写的两个脚本。demo.sh-d 表示存在的意思(不知道的用英文查google)
$1 表示传入的第一个参数
这个是bash脚本,因为计算机默认bash脚本,所以运行时在终端输入脚本的路径
~/local/demo.sh就可以直接运行脚本执行里面的命令

demo.js这个是node.js脚本,第一行叫做shebang,加了shebang后,计算机就知道这个文件要按node脚本运行,于是可以直接运行
~/local/demo.js
如果没有shebang,就要写
node ~/local/demo.js

若想直接输入脚本名运行脚本,可以将脚本的路径添加到PATH中demo.sh我的脚本放在local目录中,于是把这句话添加到.bashrc或.zshrc的最后一行,当你运行脚本名时直接在终端输入
demo.js
计算机就会自动从local目录里找到这个脚本运行

配置HEXO博客-linux

Veröffentlicht am 2018-02-28

1. 第一次创建博客

a. 终端进入Desktop目录
b. github上新建一个空的repo,名字是[你的用户名.github.io]
c. 运行npm install -g hexo-cli安装 Hexo
d. hexo init myBlog
e. cd myBlog
f. npm i
g. hexo new 开博大吉,创建了一篇博客
h. 复制这篇博客的路径,vi 路径进行编辑
i. vi _config.yml,把 title 改成想要的名字,把author 改成你的名字,把最后一行 type 改成 type: git(git前有空格),在最后一行后新增一行,左边与 type 平齐,加上 repo: 仓库SSH地址(地址前有空格)
j.npm install hexo-deployer-git --save
k. hexo deploy
l.若出现错误Permission denied,则将第i步的repo地址改为HTTPS地址
m. 若还出现Error
Permission denied (publickey).
fatal: 无法读取远程仓库。,则按这里的方法解决
n. 进入对应的 repo,点setting,将GitHub Pages 功能中的source改成master branch,点save,点击预览链接
o. hexo new 名字建立第二篇博客
p. vi 路径进行编辑
q. hexo g
r. hexo d 完成第二篇上传~

2. 删除文章

先在本地删除,然后进入博客目录依次
a. hexo g
b. hexo d

3. 下载已有的博客

a. 终端进入Desktop
b. 复制源代码仓库的SSH地址,git clone 源代码地址
c.运行npm install -g hexo-cli安装 Hexo
d.进入下载的目录 npm install hexo --save
e. 就可以按照上面1.o的方法创建新博客了

4.第一次建立博客后创建源代码仓库

1.创建名叫 blog-generator 的空仓库
2.按图中在终端进入你的博客目录中执行!用SSH地址!
3.以后每次 hexo deploy 完之后,博客就会更新;然后你还要要 add / commit /push 一下,以防万一。

GitHub和git

Veröffentlicht am 2018-02-28

一. 配置GitHub

  1. 点击New SSH key
  2. title随便写
  3. 终端运行ssh-keygen -t rsa -b 4096 -C "邮箱"
  4. 运行 cat ~/.ssh/id_rsa.pub,得到一串东西,复制粘贴到key里,点击 Add SSH key
  5. 运行 ssh -T git@github.com

二. 配置git

依次运行
git config --global user.name “英文名”
git config --global user.email “邮箱”
git config --global push.default matching
git config --global core.quotepath false
git config --global core.editor "vim"

三. 使用git的三种方法

1. 建立本地仓库

a. 在桌面创建git-demo目录mkdir git-demo
b. cd git-demo
c. git init
d. 在git-demo目录里运行touch index.html
e. 运行 git status -sb 可以看到文件前面有 ??
f. 运行git add .
g. git commit -m "第一次提交"
h. git pull先把github上的文件拉下来(一般可忽略)
i. git push推上去

2. 将本地仓库上传到github

a. 先确保有本地仓库,再在github上创建一个仓库
b. name和电脑上的目录名一样,其他东西不动,创建
c. 点击SSH地址!然后复制页面上这行代码运行git remote add origin git@github.com:xxxxxxxxx/git-demo-1.git
d. 复制第二行 git push -u origin master运行

3. 在github上创建仓库并下载

a. 创建时勾选initialize this … ,Add .gitignore 选node,Add a license 选MIT License
b. 进入仓库点右上角绿色clone or download
c. 点 use SSH,并复制下面的地址
d. 终端进入桌面运行git clone 地址,于是将仓库下到了电脑上
e. 进入文件夹git init,初始化本地仓库

四.上传更新

1.git add .
2.git commi -m “第一次更新”
3.git pull(将网上更新的文件拉到电脑上)
4.git push(上传)

命令行基础

Veröffentlicht am 2018-02-28

一. 常用命令

缩写 全写 命令
mkdir make directory 创建目录
touch 创建文件
echo echo “hi” > 1.txt 创建文件1.txt
echo “hi” >! 1.txt 覆盖1.txt
rm remove 删除
mv move 重命名
cp copy 复制
ls list 显示当前目录下所有文件
ls -a 显示隐藏文件
cd change directory 改变目录
ln -s 建立软链接

还可以把很多常见命令的缩写放进.bashrc或.zshrc里,比如

alias la=’ls -a’
alias ll=’ls -l’
alias gst=’git status -sb’
alias ga=’git add’
alias ga.=’git add .’
alias gc=’git commit’
alias gc.=’git commit .’

保存退出,然后运行 source ~/.bashrc
这样一来,你的 Git 操作就会简单很多

入门前端的必要软件

Veröffentlicht am 2018-02-28

1. 安装Linux

Windows直接安装深度Linux

2. FQ

a.Linux命令行:sudo apt-get install python-pip; sudo pip install shadowsocks;
macOS:
brew install shadowsocks-libev(如果没有brew,需先安装)
b.用命令行在主目录下touch创建 .ssconf.json文件,并配置以下内容(服务器自己买)

{
“server”:”服务器IP”,
“server_port”:端口,
“local_address”: “127.0.0.1”,
“local_port”:1080,
“password”:”密码”,
“timeout”:300,
“method”:”aes-256-cfb”,
“fast_open”: false
}

c.让命令行也走代理 下载,解压到主目录
d.命令行在主目录下用touch创建.proxychains.conf文件,并配置

strict_chain
quiet_mode
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5 127.0.0.1 1080

e.在主目录的.bashrc文件(没有就touch一个)里添加

alias pc=’proxychains4 -f ~/.proxychains.conf’

f.命令行: source ~/.bashrc
g.命令行:sslocal -c ~/.ssconf.json
(macos)ss-local -c ~/.ssconf.json开启代理,若出现undefined……_cleanup,则运行
sed -i 's/_cleanup/_reset/g' xxxxxxxxxxxxxxxxxxxxxx/openssl.py(把 xxxxxxxxxxxxxxxxxxxxxx/openssl.py 改成运行结果里openssl.py 文件的路径)

h.命令行:pc curl -L http://google.com(若没有curl需先安装sudo apt-get install curl,sudo是管理员命令要输密码)检测FQ是否成功
i.火狐添加代理插件,导入配置,选自动切换,点应用选项

3. 命令行小工具 z和fzf

z:

a.命令行进入Desktop,curl -L https://raw.githubusercontent.com/rupa/z/master/z.sh > z.sh
b.命令行 vi ~/.bashrc,在第一行添加

source ~/Desktop/z.sh

c.命令行:source ~/.bashrc
d.这时已安装好,开始配置
e.命令行:vi ~/.bashrc,在alias下空一行添加

unalias z
j() {
if [[ -z “$“ ]]; then
cd “$(_z -l 2>&1 | fzf +s | sed ‘s/^[0-9,.]
//‘)”
else
_last_z_args=”$@”
_z “$@”
fi
}
jj{
cd “$(_z -l 2>&1 | sed ‘s/^[0-9,.]
*//‘ | fzf -q $_last_z_args)”
}

fzf

4. Linux下安装node(mac自己谷歌)

a.安装git,命令行sudo su进入root,apt-get install git,输入git检查是否安装成功
b.命令行配置git git config --global user.name "pyz"
git config --global user.email ".......@qq.com"
c.命令行 git clone git://github.com/nodejs/node
d.命令行 cd node/
e.命令行 ./configure
f.命令行 make install
g.命令行 node -v

5. 命令行安装yarn

官网

6. 在root下安装nrm

官网

计算机存储数据的方式

Veröffentlicht am 2018-02-28

1. 如何存储字符

对应ASCII码表,计算机只能存储二进制:
a的编号97 ——> 0110 0001(2)——> 61(16)
1的编号49 ——> 0011 0001(2)——> 31(16)

2. 存储字符方式

UTF-8是一种编码方式,将Unicode编码存入计算机:
00000000 00000000 00000000 01111111(2)(7位及以内)
UTF-8:0XXXXXXX
00000000 00000000 00000111 11111111(2)(11位及以内)
UTF-8:110XXXXX 10XXXXXX
00000000 00000000 11111111 11111111(2)(16位及以内)
UTF-8:1110XXXX 10XXXXXX 10XXXXXX(2)
00000000 00011111 11111111 11111111(2)(21位及以内)
UTF-8:11110XXX 10XXXXXX 10XXXXXX 10XXXXXX

3. ASCII码

A:65
a:97
0:48

正则表达式

Veröffentlicht am 2018-02-28

RegExr

/.+yize/g 某yize

/peng.+/g peng某

/./g 匹配所有字符

/../g 把字符两个两个的匹配

/\w/g 匹配所有0-9,a-z,A-Z

/\W/g 匹配除0-9,a-z,A-Z以外的字符

/\d/g 匹配数字

/\d\.\d/g 匹配有一位小数的数字 例:1.1

/\D/g 匹配除数字以外的字符

/\s/g 匹配空格、TAB、断行

/\S/g 匹配除上面之外的字符

/[abc]/g 匹配a、b、c(一个一个地匹配)

/abc/g 匹配abc三个连在一起

/[a-k]/g 匹配a到k(一个一个匹配)

/[\u4e00-\u9fa5]/g 匹配每个中文字(一个一个匹配)

/[yY][oO]+/g 匹配yo、yoooo、yOOOOO、Yo、Yooo、
YO或YOOOO,+号表示出现一次或多次

/[yY][oO]+[!~\.]*/g 匹配yo!、yo.、yo、yooo~~、Yoo!!,*
号代表出现0次或多次

/[yY][oO]+p?[!~\.]*/g 匹配yop!,?号匹配0个或1个

/yo{2,4}/g 只能匹配yo后的2~4个o

/yo{2,4}\b/g 截断了大于4个o的yo

/yo{5}/g 匹配yooooo

/yo{2,}/g 匹配yo后o大于等于2的

1(?:37|39|82|83)\d{4}(\d{4}) 括号里加?:表示仅匹配,不捕获

第一节课

Veröffentlicht am 2018-02-28

饥人谷JS Bin

1. css animation

html:

1
<p></p>

css:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
p {
height:100px;
width:300px;
background:#eee;
animation-duration: 3s;
animation-name: slidein;
}

@keyframes slidein {
from {
width:100px;
height:200px;
background:black;
}

to {
width:300px;
height:100px;
background:#eee
}
}

2. window.open

html:

1
2
<button id=myButton>点我</button>
<button id=myButton2>点我2</button>

js:

1
2
3
4
5
6
7
8
9
10
11
myButton.onclick = function(){
let windowObjectReference =
window.open('http://baidu.com','sb',
'width=400,height=400,top=100,left=100');
}

myButton2.onclick = function(){
let windowObjectReference =
window.open('http://qq.com','sb',
'width=400,height=400,top=100,left=100');
}

3. 进制转换

十进制 ——> 二进制
23(10)——> 10111(2)
0.25(10)——> 0.01(2)

二进制 ——>十六进制,每四个二进制代表一个十六进制数
0001 ——> 1,0010 ——> 2,0011 ——> 3,0100 ——> 4,
0101 ——> 5,0110 ——> 6,0111 ——> 7,1000 ——> 8,
1001 ——> 9,1010 ——> A,1011 ——> B,1100 ——> C,
1101 ——> D,1110 ——> E,1111——> F

二进制 ——> 十六进制
1001 0001(2)——> 91(16)
1101 1011(2)——> DB(16)
0001 1101 1011(2)——> 1DB(16)

南京

Veröffentlicht am 2018-02-27

开学鸟

1…45

Pengyize

50 Artikel
© 2018 Pengyize
Erstellt mit Hexo
|
Theme — NexT.Muse v5.1.4