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 ...
随机推荐
- Django开发登录功能实战
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:凡夫俗子66 Django 如果是定义函数写登录路由,需要判断请求方法 ...
- 首创诠释docker的Formulas: Windows 7 + Tiny Linux 4.19 + XFS + Vmware Workstation = super machine (docker从零开始时记,Follow me and you go)
不少人从来没有接触过docker,或者仅仅是听说过,本文试图从原点开始深入了解docker的全貌,剖析docker的基础概念,让我们一起开始docker之旅~~~ 开场:什么是docker docke ...
- pipelineDB学习笔记-3. Continuous Transforms (连续转换)
以下内容为本人根据pipelineDB官网内容进行翻译,如有不妥之处请指正,谢谢大家 Continuous Transforms (连续转换) 一.定义: Continuous Transforms ...
- 中国 700 万开发者中,370 万在使用 VS Code
近日(2019 年 12 月 10 日 - 11 日),Microsoft Ignite The Tour 北京站圆满落幕. 微软大中华区副总裁.市场营销及运营总经理康容先生,在大会上表示:“在中国 ...
- 解决mysql导入数据量很大导致失败及查找my.ini 位置(my.ini)在哪
数据库数据量很大的数据库导入到本地时,会等很久,然而等很久之后还是显示失败: 这是就要看看自己本地的没mysql是否设置了超时等待,如果报相关time_out这些,可以把mysql.ini尾部添加ma ...
- 删除列表中重复元素以及求list中元素个数
Python 去除列表中重复的元素 来自比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) print l2 还 ...
- 对token机制的学习和分析
token,中文意思为令牌,是用户登录后会返回的一个字符串,里面包括用户信息.登录时间等,但是是加密过的密文,其加解密方式由后端决定. 在登录之后的接口请求中,前端需在请求中统一加上token,从而识 ...
- IT兄弟连 HTML5教程 CSS3属性特效 盒模型阴影
除了为文字添加阴影,我们还可以为盒模型添加阴影.盒模型阴影的属性名称为box-shadow,此属性与text-shadow一样有4个值,前两个值分别表示水平方向位移距离和垂直方向的位移距离,第三个值表 ...
- Jmeter+Ant+Jenkins集成抛出异常java.lang.ClassNotFoundException: javax.mail.internet.MimeMessage
一.问题描述 二.解决方法 下载javax.mail.jar插件,并将该插件放到%ANT_HOME%\lib目录下即可解决,下载地址:https://javaee.github.io/javamail ...
- 在 .NET Core 3.0 中支持 Newtonsoft.Json 的使用
.NET Core 3.0 已经使用了一整套内置的 Josn 序列化/反序列化方案,而且看上去效率还不错.但对于某些项目必须使用到 Newtonsoft.Json 的时候,就会抛出如下异常: Syst ...