HTTP协议原理
HTTP协议,全称HyperText Transfer Protocol,中文名为超文本传输协议
HTTP的重要应用之一是WWW服务
www,全称World Wide Web,常称为Web,中文译为”万维网”
HTTP协议的WWW服务应用的默认端口为80
另外一个加密的WWW服务应用https的默认端口为443
说明:一般互联网公司,对外开放的端口,只有两个(80和443)
HTTP协议报文结构详细说明
- HTTP请求报文结构
1)请求行
a 请求方法
get ----获得请求文件信息的数据内容 (获取)
post ----告知服务器需要保存的数据信息(提交)
b 请求文件信息
说明:当没有指定请求的文件内容,默认请求的是首页文件index.html
c 说明请求报文采用的说明http协议版本
1.0: 规定浏览器与服务器只保持短暂的连接(TCP短连接)
1.1: 规定浏览器与服务器只保持长久的连接 (TCP长连接)
2)请求头(内容)
3)空行
4)请求主体内容
说明:采用get方法时,不会有请求主体内容;采用post方法时,将要提交的信息放入请求主体中
- HTTP响应报文结构
1)起始行:
a HTTP协议版本说明
1.0: 规定浏览器与服务器只保持短暂的连接(TCP短连接)
1.1: 规定浏览器与服务器只保持长久的连接 (TCP长连接)
b HTTP响应状态码信息
告知请求的结果
200 --- 正常响应请求报文
301 --- 跳转,永久跳转
302 --- 跳转,临时跳转
403 --- 设置指定页面,拒接访问:(权限问题)
404 --- 找不到我所要请求的文件内容(找不到请求的页面信息)
500+ --- 网站后端服务器出现了问题(大部分情况都是网站出现问题)
说明:详细了解很多HTTP状态码,http权威指南
c HTTP状态描述信息
curl 命令可以在linux系统中,模拟浏览器功能,访问网站
-I ----- 显示响应报文起始行和响应头部信息
2)响应头部
3) 空行
4)响应报文主体
说明:就是请求报文中,所要请求文件的内容:客户端浏览器会识别响应报文主体内容,进行解析。
- 不同状态范围码及其作用
- HTTP基础原理图 请求与响应报文详细信息
- HTTP术语介绍说明
互联网上的数据有很多种不通的类型,Web服务器会把通过Web传输的每个对象都打上MIME类型(即MIME type)的数据格式标签。最初设计MIME(multipurpose internet mail Extension,多用途因特网邮件扩展)是为了解决再不同的电子邮件系统之间搬移报文时存在的问题。MIME在电子邮件系统种工作得非常好。后来,HTTP也支持这个功能,用它来描述数据并标记不同的数据内容类型。
当Web服务器响应HTTP请求时,会为每一个HTTP对象数据加一个MIME类型,当Web浏览器获取到服务器返回的对象时,会去看看相关的MIME类型,并进行相应的处理。
MIME类型存在与HTTP响应报文的响应头部信息里,它是一种文件标记,表示一种主要的对象和一个特定的子类型,中间由一条斜杠来分割。
1) 媒体资源类型
说明:定义相应web服务可以识别的文件资源类型
如果媒体资源类型中有相应请求文件类型,会帮你进行解析
如果媒体资源类型中没有相应请求文件类型,会将文件传输给客户端,自行解析
2) URL与URI概念介绍
URL 全称为 uniform resource location,中文翻译为统一资源定位符 比如:jingdong.com.hhk URI 全称为 uniform resource identifier 中文翻译为统一资源标识符 比如:jingdong.com
3)静态网页资源
门户新闻业务
新闻网站的特点是一旦发布完成,几乎不会再改动网页内容,因此,新闻业务内容静态化相对比较简单。
纯粹HTML格式的页面(可以包含图片、视频JS(前段功能实现)、CSS(样式)等)通常被称为”静态网页”
特征说明:
a 每个页面都有一个固定的URL地址,且URL一般以.html、.htm、.shtml等常见形式为后缀,而且地址中不含有问号“?”或“&”等特殊符号。
b 静态网页是实实在在保存在服务器上的文件实体,每个网页都是一个独立的文件
c 静态资源不需要和数据库进行交互,因此网站交互性能差
d 网页内容是固定不变的,因此,容易被搜索引擎收录(容易被用户找到)(优点)
e 网页程序在用户浏览器端解析,当客户端向服务器请求数据时,
服务器会直接从磁盘文件系统上返回数据(不做任何解析)
4)动态网页资源
所谓的动态网页是与静态网页相对而言的,也就是说,动态网页的URL后缀不是.html、.htm、.xml、.shtml、.js、.css等静态网页的常见扩展名形式
特征说明:
A 动态资源需要和数据库进行交互,因此网站交互性能好
省略...
B 网页程序在服务端解析,当客户端向服务器请求数据时,
服务器会直接从磁盘文件系统上返回数据(会做数据解析后返回)
5) 伪静态资源(了解/真正企业中有开发人员负责伪静态资源编写)
A 网页内容是固定不变的,因此,容易被搜索引擎收录
B 网页程序在用户浏览器端解析,当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(不做任何解析)
C 动态资源需要和数据库进行交互,因此网站交互性能优
D 网页程序在服务端解析,当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(会做数据解析后返回)
如何证明一个网站有价值
- IP度量值:(参考值)
根据访问的用户源IP地址进行统计,判断有多少用户进行访问?
说明:有可能统计数值不准确
a 由于有NAT映射问题,会把局域网多台主机不同的源IP地址映射为一个相同的公网源IP地址
b 由于家用拨号网络,没有固定的外网IP地址
数据计算方法:
01)利用awk数组方法结合nginx访问日志(分享讲解awk多维数组)
02)通过程序代码进行统计
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?9aa800f882f575237396648643111698";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
说明:通过代码实现IP度量值统计记录
03)借助第三方工具进行统计
- PV度量值:(参考值)
page view:页面访问量
数据计算方法:
01)利用awk数组方法结合nginx访问日志(分享讲解awk多维数组)
02)通过程序代码进行统计
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?9aa800f882f575237396648643111698";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
说明:通过代码实现IP度量值统计记录
03)借助第三方工具进行统计
- UV度量值
记录一个独立访客数;利用cookie进行统计记录
cookie: 记录客户端访问信息,cookie信息一般会保存在客户端
session:记录客户端访问信息,session信息一般会保存在服务端
数据计算方法:
01)利用awk数组方法结合nginx访问日志(分享讲解awk多维数组)
02)通过程序代码进行统计
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?9aa800f882f575237396648643111698";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
说明:通过代码实现IP度量值统计记录
03)借助第三方工具进行统计
网站度量linux企业运维常见面试题
- 你如何理解网站并发?
- 公司访问量是多少,怎么计算的?按照PV UV IP 并发来三个知识点去侃
本次完,谢谢大家支持。——ke.ke
閱讀更多 王牌和老K 的文章