【杂记】URL-网页及Git问题分享
前言
此篇笔记主要讲两个方面
- 一个是用户从浏览器输入url到页面展现,中间经历了什么
- 我在使用Git的时候出现了一些小问题的分享
从URL到网页展现的过程
首先熟悉两个名词
-
URL(Uniform Resource Locator),统一资源定位符,实际就是网站的网址/域名,简单的来讲就是我们平常打开网页所输入的“www.xxx.com”
-
IP是什么
IP实际上就是指URL背后隐藏的真实地址,由于要普通人记忆成百上千的“xx.xx.xx.xx”的数字组合来记忆网站是不现实的,所以我们就是用了URL来代替IP进行记忆
URL与页面的关系
整个过程较为复杂,涉及很多知识内容,整个过程大致如下:

过程详述
- 输入URL即网址/域名
也就是用户在浏览器中输入自己所知道的“www.xxx.com”等其他网址 - 域名解析
对于用户输入的域名,浏览器实际上是不认识这段字符串是什么的,所以,需要经历一系列的解析过程来最终定位输入域名的Ip地址- 查找浏览器缓存——浏览器会自动缓存你的访问记录一段时间
- 查找系统缓存——电脑的Hosts文件中也会储存部分的域名信息
- 查找路由器缓存——路由器也会缓存一些域名信息
- 网络提供商的缓存——如电信、联通等也会有自己的域名缓存信息
- 如果以上均无法找到,那么将会向互联网的根域名服务器发送查找域名对应IP的请求,根服务器将会一级一级下达请求直到找到IP
- 服务器处理
服务器是一台安装系统的电脑,常见的系统为Linux、windows server 2012等,服务器使用Web server来处理收到的访问请求 -
网站处理
MVC模型
MVC模型处理流程,这里实际上不是很懂,接下来的学习中有待进一步的理解
- 浏览器处理
- HTML字符串被浏览器接收后会被一句一句的读取解析
- 解析到<link>标签后发送请求获取css,并执行代码
- 解析到<script>标签后发送请求获取js,并执行代码
- 解析到<img>标签后发送请求获取图片资源
-绘制网页
浏览器将根据拿到的HTML/CSS,来机选得到渲染树,并绘制在屏幕上,同时也会执行JS代码
Git遇到的一些问题分享
这一部分算是即兴的一块,因为上半部分的URL到网页的展示主要是记忆,大概理解,知道就行,而Git操作是比较实在的,对就是对错就是错,所以实操的项目中有可能出现各种各样的问题,这部分就收录一下这些问题,不定期更新,如果问题太多,我会重新开一贴来记录分享,希望对大家有所帮助。简单分享,我也未必很懂,莫要见怪
Git基本操作
这部分包括GitHub的账号注册、ssh生成/添加、设备key的绑定,首次的clone这些较为简单,这里就不做记录了,搜索大部分都能解决的
本地仓库提交到远程仓库error
第一次做这个事情出了一些错误,最有印象的一个是,按照一些网上博客的操作流程做了一遍,但是发现一个问题,在进行"git push origin master"的时候出现了如下错误
$ git push origin master
To github.com:carryqin/resume.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:carryqin/resume.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
建立远程仓库后,本次增删改查目录下各种文件都没什么问题,就是push出这个问题,查了半天后终于得到了解决方法,最主要的问题是,在你创建远程仓库的时候会生成README.md(勾选初始化并创建README.md),但是如果你还未push的本地仓库目录中不含这个文件就会报这个错误,所以需要你先获取远程仓库的README.md才可以继续操作,所以我们是用这个命令
git pull --rebase origin master【代码合并】
操作成功之后,即可获得如下提示
git pull --rebase origin master
warning: no common commits
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From github.com:carryqin/resume
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
First, rewinding head to replay your work on top of it...
Applying: 本地仓库首次提交
然后再push到origin master就没有问题了,虽然还是有些疑惑,但是好歹解决了燃眉之急,有需要的可以试试
待遇到的问题(待续)
后记
根据查阅的资料得到的过程实际上比较笼统,需要仔细研读并学习相关知识,现在能力不足,所以根据自己的理解只能得到如上的结论,如有错误请指教