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 ...
随机推荐
- Linux-(1)Linux概述
一.概述 1.1 Linux的历史 操作系统,英语Operating System简称为OS.说道操作系统就需要先讲一讲Unix,UNIX操作系统,是一个强大的多用户.多任务操作系统, 支持多种处理器 ...
- Linux-部署-Django
Linux-部署-Django-项目过程与问题总结 优才网 2017-04-12 18:00 本篇主要用于记录部署 Django 项目所有踩过的坑. 最近学习 Django 框架开发,将项目部署到 ...
- java8-从Lamda到方法引用和构造引用
一方法引用概述 经过前面2章Lamda原理引入和Lamda解析,基本就会熟练使用Lamda表达式,这次我们更深入点.来了解一下方法引用. 方法引用是特定Lamda表达式的一种简写,其思路就是能替换La ...
- NLP(十八)利用ALBERT提升模型预测速度的一次尝试
前沿 在文章NLP(十七)利用tensorflow-serving部署kashgari模型中,笔者介绍了如何利用tensorflow-serving部署来部署深度模型模型,在那篇文章中,笔者利用k ...
- OurEDA慕课网开发记录
项目说明 OurEDA实验室每年都会面向大一新生招人,每周的沙龙都会有学长来讲课,传经验,录下来的沙龙视频就非常有价值,因此,在老师的安排下,我负责开发了慕课网这样一个项目. 首要问题及其解决方案 视 ...
- python 正则表达式re使用模块(match()、search()和compile())
摘录 python核心编程 python的re模块允许多线程共享一个已编译的正则表达式对象,也支持命名子组.下表是常见的正则表达式属性: 函数/方法 描述 仅仅是re模块函数 compile(patt ...
- c++-类与类的关系
类与类的关系 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class A { publ ...
- HtEditor使用总结
最近在公司学习到ht编辑器的使用,关于使用方法上总结了一下,避免入坑.ht是做大屏数据可视化比较好的一款软件,不过多介绍,官网上有具体使用方法和展示样例,这里我整理一下我用的最多的功能. ##1.如何 ...
- 菜鸟刷面试题(四、Spring/Spring MVC/Spring Boot/Spring Cloud篇)
目录: 为什么要使用 spring? 解释一下什么是 aop? 解释一下什么是 ioc? spring 有哪些主要模块? spring 常用的注入方式有哪些? spring 中的 bean 是线程安全 ...
- css 重点知识 和 bug 解决方法
1.图片向下撑大3像素问题 在一个盒子里面放一张图片,默认情况下,图片会向下撑大3像素,有以下几种解决方法: 1.1 给图片添加display:block: 1.2 给图片添加 float:left: ...