饥人谷学习第4天
URL
URL从输入到页面展现
1.浏览器输入URL
URL是:(域名、端口号、协议等)
- 统一资源定位符,用于定位互联网上的资源
- 常见的协议:http、https(加密后)、ftp、file(本地)协议
有时候打开网站有 // 代表当前的文件的URL与当前页面的协议保持一致。
2.域名解析
通过一种方式,将域名解析成域名对应的IP。
对于http://jirengu.com:8080/blog,jirengu.com就是域名
IP是:
- 每个处于互联网中的设备都有IP地址,形如192.168.0.1
- 局域网IP和公网IP是有差别的
- 127.0.0.1代表本机的IP
域名解析流程:
1.浏览器缓存 - 浏览器会缓存DNS记录一段时间;
2.系统缓存 - 从Hosts文件查找是否有该域名和对应IP;
3.路由器缓存 - 一般路由器也会缓存域名信息;
4.ISP DNS缓存 - 比如到电信的DNS上查找缓存;
5.如果都没有找到,则向根域名服务器查找域名对应IP,根域名服务器把请求转发到下一级,直到找到IP。
3.服务器处理
服务器是:
一台安装系统的机器,常见的系统如Linux、widows server2012,系统里安装的处理请求的应用叫Web server(接受请求并响应)。
Web服务器:
- 常见的Web服务器又Apache、Nginx、IIS、Lighttpd
- Web服务器接受用户的Request交给网站代码,或者接受请求反向代理到其他Web服务器。
4.网站处理流程
MVC模型(model) - 视图(view) - 控制器(controller)
浏览器处理
HTML字符串被浏览器接受后被一句句读取解析
解析到link标签后重新发送请求获取CSS
解析到script标签后发送请求获取js,并执行代码
解析到img白哦前后发送请求获取图片资源
绘制网页
浏览器根据HTML和CSS计算得到渲染树,绘制到屏幕上,js会被执行
Git
关于版本控制:一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
- 本地版本控制系统
- 集中式版本控制系统(SVN)
- 分布式版本控制系统(Git)
Git优势
- 速度
- 简单设计
- 允许上千个并行分支
- 分布式
Git创建公钥和私钥对
ssh-keygen -t rsa -b 4096 -C "邮箱"
将~/.ssh目录下生产的公钥id_rsa.pub拷贝到GitHub
重要概念:
- 已提交 (committed)
该文件已经被安全地保存在本地数据库中 - 已修改 (modified)
修改了某个文件,但还没有提交保存 - 已暂存 (staged)
把已修改的文件放在下次提交时要保存的清单中
简单使用
1.起步:初次使用需要设置姓名和邮箱
git config --global user.name "姓名"
git config --global user.email 180...@163.com
2.clone项目:用于把一个GitHub的项目clone(下载)到本地变为本地仓库
git clone (ssh)
cd 项目名
3.添加文件并提交
- 创建文件
touch a.md - 在文件李写入一个字符串 echo "hello" > a.md
git status - 把当前目录下的新增和修改的文件添加到暂存区
git add .
git status - 把暂存区的更新提交到本地库
git commit -am "add file"(m参数为备注)
git status - 把当前本地仓库里的改动推送到远程库(origin)的master分支
git push origin master - 把远程仓库的变动更新合并到本地仓库
git pull - 修改文件
vim a.md
git add .
注意:如果提交消息包含大量字符串,提交参数不用加 m ;此时会进入 vim 界面,按下 i 进入编辑状态,进行编辑;编辑完成之后按下 esc 进入命令状态,输入 :wq 保存退出 vim
git commit -a
git push origin master - 删除文件
rm -rf a.md
git add .
git commit -am "删除a.md"
如果之前已经git push origin master 过了,后面可以直接简化成 git push
复杂使用
1.本地创建一个git项目推送到远程空仓库
mkdir newProject
cd new Project
- 把一个文件夹初始化成一个本地 git 仓库
注意:仓库和文件夹的区别在于仓库下有一个隐藏的 .git文件夹,里面有一些信息
对于一个仓库,删除.git文件夹就变成了一个普通文件夹
git init
touch index.html
echo "hello" > index.html
git add .
git commit -am "init"
2.本地创建要给 git 项目推送到远程空仓库
- 查看本地库里记录的远程库地址
git remote -v - 这里把远程库的地址添加个标签叫origin
git remote add origin 地址 - 推送到远程库地址
git push origin master - 强制推送
git push -f origin master - 添加一个远程库的标签
git remote add gitlab 地址 - 推送到gitlab标签的地址上
git push gitlab master - 删除gitlab标签
git remote remove gitlab - 修改origin标签对应的地址
git remote set-url origin 地址 - 把gitlab标签改名为coding
git remote rename gitlab coding
3.分支操作
- 创建本地库dev 分支
git branch dev - 切换到dev 分支
git checkout dev
touch b.md
git add .
git commit -am "add b.md" - 推送到origin地址的dev分支上
git push origin dev -
分支合并 把dev分支上的内容合并到当前分支(master)上
git merge dev
4.冲突
当自己和别人改同一个文件的同一个地方,在执行git pull时更新本地合并时会出现冲突
网友评论