Linux-http协议(应用层协议)-http概述-http格式-http版本-http方法-http状态码
Posted 天津 唐秙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-http协议(应用层协议)-http概述-http格式-http版本-http方法-http状态码相关的知识,希望对你有一定的参考价值。
文章目录
1. HTTP协议(应用层)
1.1 http协议的概述
超文本传输协议,是属于应用层的协议,web->server,无连接,无状态,那是不是可以说是不安全的?不是的,在传输层是使用的TCP协议,而TCP是面向连接的,所以是安全的。
1.2 http协议的url解释
- 协议方案名
- 登录信息(认证)
- 服务器地址
- 服务器端口号
- 带层次的文件路径
- 查询字符串
- 片段标识符
http和https,区别https会加密传输,这两个方法中相差一个ssl,使用的是非对称加密,http监听80端口,https监听443端口。
1.3 urlencode和urldecode
C+±>C%2B%2B
urlencode:将字符转换成为16进制
urldecode:将16进制转换成字符
%:提示服务器后面的数据是被urlencode过的,多个key=value的键值对,以&符号进行分割。
片段标识符:定位资源的位置
命令: ping 网址
功能: 得到网址的ip地址
1.4 http协议的格式
请求:
响应
首行: 【版本号】+【状态码】+【状态码解释】
Header: 请求的属性,冒号分割的键值对,每组属性之间使用\\r\\n分割,遇到空行表示Header部分结束
Body: 空行后面的内容都是Body,Body允许为空字符串,如果Body存在,则在Header中会有一个Content-Length属性来标识Body的长度,如果服务器返回了一个html页面,那么html页面的内容就再body当中。
1.5 http的协议版本
HTTP/0.9 :1990年问世,没有作为正式的标准
HTTP/1.0 :1996年5月公布,初期版本
HTTP/1.1 :1997年1月公布,目前主流的HTTP协议版本
HTTP/2.0 :新一代的HTTP协议版本,暂时未被广泛使用
1.6 http的方法
方法 | 说明 | 支持的HTTP协议版本 |
---|---|---|
GET | 获取资源 | 1.0、1.1 |
POST | 传输实体主体 | 1.0、1.1 |
PUT | 传输文件 | 1.0、1.1 |
HEAD | 获得报文首部 | 1.0、1.1 |
DELETE | 删除文件 | 1.0、1.1 |
OPTIONS | 询问支持的方法 | 1.1 |
TRACE | 追踪路径 | 1.1 |
CONNECT | 要求用隧道协议连接代理 | 1.1 |
LINK | 建立和资源之间的联系 | 1.0 |
UNLINE | 断开连接关系 | 1.0 |
1.7 http的状态码
类别 | 原因短语 | |
---|---|---|
1xx | informational(信息性状态码) | 接收的请求正在处理 |
2xx | success(成功状态码) | 请求正常处理完毕 |
3xx | redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4xx | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5xx | server error(服务器错误状态码) | 服务器处理请求出错 |
常见的状态码:
200(ok)
404(not found)
403(forbidden)
302(redirect)
504(bad gateway)
1.8 http常见Header
content-type: 正文数据类型(text/html等)
content-length: body的长度,描述正文的长度
host: 客户端告知服务器请求的资源在哪个主机的哪个端口
user-agent: 声明用户的操作系统和浏览器版本信息,可以防止爬虫
referer: 当前页面是从哪个页面跳转过来的
location: 搭配3xx状态码使用,告诉客户端接下来去哪里
cookie: 用于在客户端存储少量信息,通常用于实现会话功能,存了会话ID,服务器通过会话ID就能知道是谁,这个是存在服务器当中的
2. 零碎知识点
1.持久化处理叫做保存。
2.三次握手之后还会ssl握手:决定了用什么算法,什么证书,服务端私钥解密,客户端公钥加密。
以上是关于Linux-http协议(应用层协议)-http概述-http格式-http版本-http方法-http状态码的主要内容,如果未能解决你的问题,请参考以下文章