一 、 HTTP 原理概念介绍 ;
用户访问网站的原理过程是什么样~~~~
01. DNS域名解析,获悉域名对应IP地址
02. 根据IP地址访问网站服务器,TCP三次握手过程
03. 用户向网站服务请求信息,HTTP请求过程(HTTP请求报文)
04. 网站服务对用户请求进行响应,HTTP响应过程(HTTP响应报文)
说明:03 04步骤就称为HTTP协议原理过程
05. 断开网络连接,TCP四次挥手过程
二 、 HTTP 协议简介 ;
HTTP 协议(超文本传输协议)是互联网中常用的一网络种协议, HTTP 的重要应用之一是 www 服务,设计 HTTP 协议 最初的目的就是提供一种发布和接收HTMl的方法,
主要应用于 web 浏览器 和 web 服务器之间的通信,Http默认的协议端口是 80 端口 , 另外一个加密的 www 服务应用 https 端口为 443 , https 以前主要用于 网银 支持等和钱相关的业务,现在已经不止是钱相关的在用了 很多企业都在用 ,
三 、 HTTP 协议 版本介绍 ;
HTTP 协议从诞生支出到现在经历了若干个版本,其中最主要的版本为 HTTP/1.0 、 HTTP/1.1,
HTTP/1.0 是第一个得到广泛使用的版本, HTTP/1.1 为当前使用的主流版本 。
HTTP/1.0 在 HTTP/0.9 的基础上增加了 HTTP 请求头可以支持更多的请求方法,并且能对多媒体对象进行处理,HTTP/1.0 使得包含生动的图片web 页面和交互式表格成为可能
HTTP/1.0 规定浏览器与服务器只保持了短暂连接,浏览器的每次 请求都需要与服务器建立新的 TCP连接,服务器请求完后断开连接 ,服务器不跟踪每个用户也不记录过去的请求 。
3.1 HTTP 协议 短连接和 长连接 说明 :
HTTP/1.0 短连接 :
断开连接后,短时间内在和服务器端建立连接,还需要从新建立TCP 三次握手,费时 效率不高
HTTP/1.1 : 长连接 ;
支持持久连接,在一个 TCP 连接上可以传送多个HTTP 请求和响应,减少了建立和关闭连接的消耗和时间的延迟,效率较高 。
四 、 HTTP 请求 - 响应 上图理解 ;
浏览器 只是负责解析 代码语言给用户反回了用户需要的页面 。
4.1 、请求报文 ;
4.2 、 常见的请求方法
常用的两种请求 GET 获取 、 POST 请求
五 、 HTTP 状态码 ===============================================================
常用的是 后边几个 ,HTTP 状态码是用来表示web 服务器响应HTTP请求状态的数字代码,
每当web 客户端向 web 服务器发送一个 HTTP 请求 web 服务器 都会返回一个状态响应码,这个状态码
一般是一个三位数字,作用是告知web客户端此次请求是否成功,或者是否要采取其他的动作方式 。
不同范围的状态码及其对应的作用 |
|
状态码 |
含义 |
100 ~ 199 |
用于指定客户端相应的某些动作 |
200 ~299 |
表示请求已经成功 |
300 ~ 399 |
用于已经移动的文件,并且常被包含在定位头信息中指定的新的地址信息 。 |
400 ~ 499 |
用于指定客户端的错误信息 |
500 ~ 599 |
用于指出服务器端的错误 |
5.1 常用状态吗说明 ;
重点掌握 502 错误 这个错误 一搬是后端有问题了
5.2 使用 curl 命令查看 响应报文 和 请求报文 详细信息
[root@m01 ~]# curl -v www.360buy.com --->> -v 显示详细信息
* About to connect() to www.360buy.com port 80 (#0)
* Trying 111.20.253.129... connected
* Connected to www.360buy.com (111.20.253.129) port 80 (#0)
> GET / HTTP/1.1 ---->> GET 请求方式 --- 版本信息 “ > ” 表示请求报文
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 -->> 用的是什么浏览器类型
> Host: www.360buy.com --->> 访问的域名 对应的主机信息
> Accept: */*
> ----->> 空行 请求头结束
< HTTP/1.1 301 Moved Permanently --->> “ < ” 表示开始 响应报文内容 包含状态吗等信息,301 永久跳转
< Server: JDWS/2.0 ---->> 响应头部 ,
< Date: Sat, 09 Sep 2017 03:15:54 GMT ---->> 时间信息
< Content-Type: text/html ---->> 返回的文件信息是什么 html
< Content-Length: 272 ---->> 报文的 大小 长度
< Connection: keep-alive ---->> 长连接
< Location: http://www.jd.com/ ---->> 指定了新的地址,这里是做了地址跳转,跳转到了新的地址的
< Via: BJ-H-NX-112(), http/1.1 XA-CM-1-JCS-159 ( [cRs f ])
< Age: 629
< ------>> 一个空行 响应报文 - 结束
=================================================================================
这就是一个响应主体 ,也就是你访问的内容
响应主体
The requested resource has been assigned a new permanent URI.
* Connection #0 to host www.360buy.com left intact
* Closing connection #0
=================================================================================
六 、 URL与URI的概念 (重点)
https://www.taobao.com/markets/3c/shuma?spm=a21bo.50862.201867-main.12.28689e73E6z0p9
https://www.taobao.com/ -- URL信息
/markets/3c/shuma?spm=a21bo.50862.201867-main.12.28689e73E6z0p9 --URI信息
域名组成:URL+ URI组成
URL,全称为Uniform Resource Location,中文翻译为统一资源定位符
URI,全称为Uniform Resource Identifier,中文翻译为统一资源标识符
七、静态网页和动态网页区别 ;
静态网页资源特点是, 开发写什么,网页显示的内容就是什么,一点编写完成,就不会有任何的改变,
静态网页的维护相对麻烦,每个不同的网页都需要单独的编写更新,静态网页一般适合用于更新较少的的宣
传展示网站,(例如 酒、家具、水果 等宣传网站),
静态网页对应程序以及资源文件常见扩展名 :
① ,纯文本类程序或者文件 如 : .html、 .htm、 .xml、 .shtml、.js、.css 等
② ,图片类文件或者是数据文档 如 : .jpg、.gif、.png、.bmp、.txt、.doc、.ppt 等
③ ,视频类流媒体文件 如: . mp4 、.swf、.avi、.wmv、.flv 等
静态网页资源的6个重要特征:
① ,每个页面都有一个固定的 URL 地址,且URL 一般是以 .html 、 .htm 、.shtml 等常见的形式为后缀
而且地址中不含有 问号 或 & 等特殊符号 。
② ,网页内容已经发布到网站服务器上,无论是否有用户访问,每个网站内容信息都是保存在网站服务器
文件系统上,也就是说,静态的网页是实实在在保存在服务器上的文件实体, 每个网页都一个一个独立的文件。
③ ,网页内容是固定不变的,因此容易被搜索引擎收录(容易被用户找到) 这也是静态网也的一个(优点)
④ ,因网页 没有数据库的支持,所以在网站制作和维护方面工作量较大,当网站信息量很大时,
完全依靠静态网页比较困难 (缺点)
⑤ ,网页的 交互性很差,在程序的功能实现方面有着较大的限制 (缺点)
⑥ ,网页程序是在用户的浏览器中解析,程序解析效率高 ,由于服务器端不进行解析,不需要读取数据库,
因此服务器端可以接受更多的并发访问,当客户端向服务器端请求数据时服务器会直接从磁盘文件系统
上返回数据(不做任何解析) 等客户端拿到数据后,在浏览器上解析,并显示出用户需要的数据 。(优点)
静态网页缺点: 没有数据的支持 , 没有交互功能 就是 不能登录 或者是 注册 什么的
静态网页优点 : 响应速度较快 ,容易被搜索引擎收录容易被用户找到 。
服务端 要什么给什么 ,生成页面用户需要的数据 是由 客户端的 web 来做的 。
八 、 怎么评估 这个网站是不是很好 , 是不是 大型的网站
1, 独立IP数度量值
独立IP数度量值是指不同IP地址的计算机访问网站是被记录的总数次,在一个局域网内多个主机
进行访问相同的网站地址时,独立IP数记为多少?
一般一天内 (00:00 - 24:00) 相同的IP地址的客户端访问网页只会被记录一次 。
2,页面浏览次数 PV
页面的浏览量或者是点击量
3 ,独立访客数 UV
根据http请求报文: 浏览器版本, 0S
根据http响应报文: cookie (id) --- 将客户端数据保存到本地
session --- 将客户端数据保存到服务器
① , 第一种 不是很精准
② , 第二种 打开一个网页就是一个 pv ,在同一网站下打开在一个页面又是一个 pv
③ , 相对于前两种 最后这种 相对于精准一点 记录相关设备属性信息 cookie 记录的是 设备的属性 信息 , session 将客户端的数据信息记录 到服务器端 , session 会话 共享
工作中常用的统计工具 :
网页信息统计软件-piwik
pwiki统计工具:(https://piwik.org/)
pwiki演示页面:https://piwik.org/demo
九 、 ---- cookie 和 session 的区别 ;
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
十 、DNS 域名解析原理 :
上图理解 :
1, 用户访问一个网站,首先访问的是 本地的 缓存服务器 hosts 文件
2,当本地的域名服务器收到请求后,先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
3,如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器
再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
4, 查看 windows 本地缓存DNS 解析记录的命令
C:\Users\Admin>ipconfig /displaydns --->> 查看命令
Windows IP 配置
safebrowsing.googleapis.com
----------------------------------------
5, 清除 windows 客户端本地缓存的DNS 解析记录的命令
C:\Users\Admin>ipconfig /flushdns
6, windows 系统下的hosts 域名解析记录的位置
C:\Windows\System32\drivers\etc\hosts
7, 通过实践理解DNS解析流程,通过 dig 命令进一步理解 DNS 解析流程
[root@web01 ~]# dig @8.8.8.8 www.baidu.com +trace
====================================END====================================================