nginx基础(3)
我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。
个人博客:传送阵
笔者微信:zhanghe15069028807
,非诚勿扰。
HTTP首部
首部:指的就是一种格式而已,而这种格式指的就是名称+值,比如content-type:images/gif明确要求要传输的内容类型必须是gif的图片,这是一个响应的报文,在一个报文当中首部可以有多个.
首部大体可以分为五类:
通用首部
请求首部
响应首部
实体首部,用于指定实体的属性
扩展首部:非标准首部,可能是由程序开发者创建的,例如X-Forward-For
1、通用首部
一看名字就知道这是通用的首部,哪个和哪个通用呢?当中是请求和响应通用。
connection:定义c/s之间关于请求的有关选项,比如对于http1.0版本来讲有一个首部有这样的
connection:keep-alive #由于1.0并不是原生支持保持连接,所以我们要明确指定,1.0默认是不支持的。
VIA: #报文经过了哪些代理,比如一个游戏服务器其实是内网,用的端口映射到外网,那么这防火墙就是一个代理。
cache-control: #缓存指示,1.1比较常用在这里先提一下,后面还会再讲,用于控制缓存的生效机制
pragma #这个选项知道即可,主要用于1.0的版本当中,功能与cache-control类似,与缓存相关
2、请求首部
2.1 必有首部
Client-IP 客户端的IP地址,为会要加IP?不是在封装的时候会封装的吗?下文当中有解释
HOST: 请求的主机名和端口号,加虚拟主机的原因是虚拟主机环境下用于不同的虚拟主机
Rferer: 指明了请求当前资源的原始资源的URL,从哪里跳转过来的,可用于防止盗链
User-Agent: 用户代理,使用什么工具发出的请求,就是用的什么浏览器
Accept首部: 用户标明客户自己更倾向的使用的方式。
accept-charset:支持使用字符表
accept-encoding:支持使用的编码方式
accept-language:支持使用的语言
client-ip
:在这里加IP的原因是,当客户端的请求到达服务器的时候,源/目标IP 源/目标端口 都会被内核拆掉,应用层不知道这个数据认谁发起的,如果想要让位于用户空间的的http进程知道的话就得在应用层的信息也要加上IP地址,其实这个不加也是可以的,服务器也会有别的办法的。
rferer
:如果我们在A网页还有超链接那么我们可以到B网页,那么到B网页的方式有两种,一是在浏览器输入URL,二就是从别的网页当中跳转过来,而rferer就是请求是从哪里过来的,不要小看这个功能,有的网站为了防止盗链就会拒绝从别的域名链接过来的连接,只能从通过URL访问。
accept
:客户端要会要求服务器发送什么媒体类型,比喻客户端会要求服务器发什么字符集、编码、是否压缩、支持什么语言,接不接收图片,有的网址很有可能提供多种语言的页面,如果客户端在三次握手之后给服务器发送一个accept-language:chinaese,那么服务器如果有中文的网站就会把中文网页返回客户端,而不是只知道傻傻的返回英文网页。
2.2 条件请求首部
如果一个网站有很多的图片,客户端通过浏览器访问一次之后在客户端本地是有缓存的,我们下一次再访问这个网站的时候,客户端并不会上来就请求其页面,而是看看本地有没有缓存的,一旦有缓存的就会向服务器发送一个条件请求:自从XX时间之后有没有修改过资源,如果服务器回应没有修改过(304),客户端就使用本地缓存的,而不会请求新的,如果服务器回应有过改动的话(200),那么客户端会再次GET一个新的网页到本地。
expect: 客户端告诉服务器自己期待的行为
If-Modified-since:是否在指定时间以后修改过此资源
if-none-match: #一个都不匹配
2.3 安全相关首部
authorization: 客户端提交给服务端的认证数据,如账号密码
cookie: 第一版cookie客户端发送给服务器的身份标识
cookie2: 第二版cookie
cookie是客户端从服务器发送的身份标识。HTTP无状态的,也主是说我们访问一个网页之后过一会再次访问的话之前的痕迹也就没有了,因为HTTP是无状态的,但是实际上我们使用时情况并不是这样,用户通过网页版腾讯视频看了几个节目,下个星期之后再次打开腾讯视频,发现还有历史记录,这是怎样实现的呢?
如上图:其实是通过cookie来实现的,cookie只是有一个浏览器集成的软件,当我们访问某个网站的时候,网站给我们发一个令牌(cookie)用于验证我们的令牌,而cookie还有一个服务端在网站服务器上,HTTP由于是无连接的,所以并不记录我们的访问记录,而cookie是记录的,cookie令牌默认是保存到浏览器当中,当再次访问之前的网站时cookie就会结合服务器上的一个cookie服务端还原用户上次访问时的历史记录,当然浏览会先出示cookie而服务器会追踪cookie,cookie的工作机制在下文当中会有详细的介绍。
3、响应首部
3.1 必有首部
age: 响应持续时间,知道即可
server: 向客户端标明服务器程序名称和版本,告诉客户端是使用的apatch的哪个版本
3.2 协商首部
accept-ranges: 对当前的资源来讲,自己所能够接受的范围类型
vary: 首部列表,服务器会把各种搭配做成几个列表,让客户端挑一个客户端可以接收的列表,服务器会根据列表当中的内容挑选出最适合的版本发送给客户端
比如客户端告诉服务器自己可以接收gzip压缩的文件和不是xz压缩的格式,而服务器告诉客户端自己只能发送rar压缩的资源那么这次通信就会失败了。
3.3 安全相关首部
set-cookie: 服务器在某客户端第一次请求发给的令牌,上面说的cookie就是这里发的
set-cookie2: 这是二版的令牌
www-authentication: 质询,即要求客户提供账号和密码,51CTO就是这样
4、实体首部
4.1 必有首部
locationi: 资源的新位置,在使用301或者302时指定新的文件位置在什么地方
allow: 允许对此资源使用的请求方法,比如客户端使用options方法去测试服务器可以使用的资源请求方法,服务器会用allow返还
4.2 内容首部
content-encoding:告诉客户端自己的编码格式是什么
content-languge告诉客户端使用的语言是什么
content-location资源所处的实际位置
content-range 资源所处的范围
content-type 资源所有的类型
4.3 缓存首部
etag: 实体标签
expires: 过期期限,一个资源可以缓存多长时间
last-modified: 上一次的修改时间
nginx基础(3)的更多相关文章
- Nginx基础整理
目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Nginx的主要企业功能 Nginx作为web服务器的主要应用场景包括: Nginx的安装 安装环境 快速安装命令集合 各个 ...
- nginx 基础文档
Nginx基础 1. nginx安装 2. nginx 编译参数详解 3. nginx安装配置+清缓存模块安装 4. nginx+PHP 5.5 5. nginx配置虚拟主机 6. ngi ...
- Nginx基础教程PPT
Nginx基础教程PPT By 马冬亮(凝霜 Loki) 一个人的战争(http://blog.csdn.net/MDL13412) pdf版本号下载 watermark/2/text/aHR0cD ...
- Linux - nginx基础及常用操作
目录 Linux - nginx基础及常用操作 Tengine淘宝nginx安装流程 nginx的主配置文件nginx.conf 基于域名的多虚拟主机实战 nginx的访问日志功能 网站的404页面优 ...
- Nginx基础知识介绍
Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...
- [转帖]nginx基础整理
nginx基础整理 https://www.cnblogs.com/guigujun/p/6588545.html 目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Ngin ...
- 原创——Nginx基础
Nginx基础 一.Nginx概述: Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx ...
- Nginx基础优化
Nginx基础优化 1.隐藏nginx header版本号 1.1查看版本号 [root@Nginx ~]# curl -I http://www.yunwei.cn HTTP/1.1 200 OK ...
- Nginx基础详细讲解
Nginx基础详细讲解 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App,操作更方便哦 1. ...
- nginx基础(二)
二.nginx基础配置 (1)错误指向一个页面 http状态指向指定访问页面,在 /etc/nginx/conf.d/default.conf 中配置 error_page /50x.html; er ...
随机推荐
- 每个pool pg数计算
ceph PGs per Pool Calculator 原文档:http://xiaqunfeng.cc/2017/09/18/ceph-PGs-per-Pool-Calculator/ 2017- ...
- ARTS-S golang常用代码段
通过http下载文件 func DownloadFile(filepath string, url string) error { out, err := os.Create(filepath) if ...
- Linux环境(服务器)下非root用户安装Python3.6
Linux环境(服务器)下非root用户安装Python3.6 在管理实验室集群时候,遇到的问题--非root用户在搭建自己环境时候,如何搭建. 注意: root用户的根目录是root,非root用户 ...
- rails 创建项目、创建controller、model等
rails2之前创建新项目: rails3以及更高版本创建新项目:rails new webname 创建数据表model:rails g model user name:string sex:str ...
- Vue中无法检测到数组的变动
本周在写项目中遇到修改数组中的值时,视图无变化问题.在查阅Vue官方文档后了解到,由于由JavaScript 的限制,Vue 不能检测以下数组的变动: 当利用索引直接设置一个数组项时,例如:vm.it ...
- Java mysql连接
public List<String> getDBTable(String tableName) { List<String> columns = new ArrayList& ...
- vscode代码自动补全失效
前段时间,朋友说自己的vscode突然出现了代码不能自动补全的问题(主要是js,其他语言也可以参考) 症状表现为,刚打开vscode有自动补全,过了一会,突然就没了,反反复复 解决过程也是相当坎坷了 ...
- 两个div,都设置未inline-block,可是在IE出现错位问题
[实现要求] 红色的和黄色的内容撑开,蓝色包住红黄,不定框居中显示 [遇到问题] chrome显示正常,但是在IE上红黄框会出现错位的问题 [如何解决] 给红色框添加一个overflow:hidde ...
- Python基础-day01-7
程序执行原理(科普) 目标 计算机中的 三大件 程序执行的原理 程序的作用 01. 计算机中的三大件 计算机中包含有较多的硬件,但是一个程序要运行,有 三个 核心的硬件,分别是: CPU 中央处理器, ...
- 前后端分离及Element的使用
1. 前后端分离 1.1 什么是前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数 ...