http协议可以说是当代最重要的应用层协议,平时我们浏览的页面、微信公众号的文章、aap内每天更新的内容等等,都是使用的http协议。既然是使用最广泛的协议,那么我们运维必须了解它的一些原理,同时也要了解http协议传输的数据都有哪些。
一 http协议
1请求流程
上图是网上流传最多的一张关于HTTP协议协议请求流程的图
2通用首部
通用首部的重要的几个,通用首部既可以出现请求报文中也可以出现在响应报文中
Date :报文的创建时间
Connection :连接方式,如keep-alive,Close
Via :显示报文经过的中间节点
Cache-Control :控制缓存的生效机制
Pragma :兼容Http 1.0
3请求首部
Accept :通知服务器自己可以接受的媒体类型
Accept-Charset :可以接受的字符集
Accept-Encoding :通知服务器自己接受的编码格式,如gzip
Accept-Language :接受的语言
Client-IP :客户端IP
Host :请求的服务器名称和端口号
Referer :包含当前正在请求资源的上一级资源
User-Agent :客户端代理
4响应首部
信息性
Age :响应持续时长
Server :服务器程序软件名称和版本
协商首部:某资源有多种表示方法时使用
Accept-Ranges :服务器可接受的请求范围类型
Vary :服务器查看的其他首部列表 ,服务器根据首部内容挑选
出最合适的资源版本发送给客户端
安全响应首部
Set-Cookie :向客户端设置Cookie
Set-Cookie2
WWW-Authenticate
5 实体首部
Allow 列出对此实体可使用的请求方法
Location 告诉客户端真正的实体位于何处
Content-Encoding 内容的编码格式
Content-Language 内容的使用语言
Content-Length 主体的长度
Content-Location 实体真正所处位置
Content-type 主体的对象类型
缓存相关
Etag 实体的扩展标签
Expires 实体的过期时间
Last-Modified最后
二URL 基本语法
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
举例1 :http://www.magedu.com/bbs/hello;gender=f
举例2 :http://www.magedu.com/bbs/item.php?username=tom&title=abc
URL 语法释义
<user>:<password> 访问网站资源时候所需要用户名密码
ftp://zhaoritian:zhaoritian@ftp.magedu.com/gnu
<Params> 指定特殊参数的可选项, 由“;”分隔
http://www.magedu.com/bbs;sale=flase/index.html;grp=true
<query> 向动态网页传递参数,供后端动态程序发起查询请求
http://www.magedu.com/bbs/item.php?username=tom&title=abc
<frag> 锚定符, 定义一个较大页面中的某一个具体的位置
http://www.magedu.com/study.html#unix
三常见http的方法
GET :从服务器获取一个 资源
HEAD :只从服务器获取文档响应 首部
POST :向服务器发送要处理的数据,放在请求报文的<entity-
body>中 中
PUT :与POST 相反,将请求的主体部分存储在服务器上
DELETE :请求删除服务器上指定的 文档
TRACE :追踪请求到达服务器中间经过的代理 服务器
OPIONS :请求服务器返回对指定资源支持使用的请求
四常用的状态码
200 请求成功 OK
301 向永久重定向 MovedPermanently
302 向临时重定向 Found
304 请求资源未发生改变 NotModified
401 输入账号和密码认证之后才能访问源资源Unauthorized
403 请求被禁止 Forbidden
404 服务器无法找到客户端请求的资源Not Found
500 服务器内部错误InternalServer Error
502 代理服务器从后端服务器收到一条伪应响应 Bad Gateway
五传输的数据格式
1静态数据
静态数据一般都使用html,html文件的格式如下
<html>
<head>
<title>头</title>
</head>
<body>
<h1>标题</h1>
<p内容<a herf=http://oldking.blog.51cto.com>bb</a></p>
</body>
</html>
2动态数据
动态数据主要分为有php,javascript,asp.net。了解就好。
总结
了解各种首部和状态码,可以帮助我们判断问题的出处,了解URL可以帮我们重定向URL使用户访问特定的网站,数据格式基本就不用去了解了。
转载于:https://blog.51cto.com/oldking/1883639