计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称之为协议
例如:HTTP举例。
首先作为发送端的客户端在应用层(HTTP协议)发出一个想要看某个web页面的HTTP请求。
接着,为了传输方便,在传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。
有关协议
与HTTP关系密切的协议:IP、TCP和DNS
上述协议简单作用
- IP网际协议位于网络层。把各种数据包传送到对方。
- TCP协议位于传输层,提供可靠地字节流服务。为了准确无误地将数据送到目的地。
- DNS服务位于应用层,提供域名到IP地址之间的解析服务。
HTTP协议是一种无状态协议,它不会对发送来的请求和响应都不会持久化处理。随着web的发展需要保存用户的状态。于是就引入了Cookie技术。通过Cookie保存管理状态。
Cookie技术通过请求和响应保温中写入Cookie信息来控制客户端的状态。
Cookie会根据从服务端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加上Cookie值后发送出去。
服务器端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。
HTTP的方法
-
GET:获取资源
GET方法用于请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。当然GET方法也可以传输实体的主体,但是一般不用GET方法进行传输。.POST的安全性要比GET的安全性高,虽然URL的长度没有限制,但是有的浏览器会对URL的长度限制。
-
POST:传输实体主体
传输实体的主体
-
PUT:传输文件
无验证机制,上传文件。
-
HEAD:获取报文首部
不返回报文主体部分。用于确认URI的有效性以及资源更新的日期时间。
-
DELETE:删除文件
无验证机制,删除文件。
-
OPTIONS:询问支持的方法
查询针对请求URI指定的资源支持的方法
-
TRACE:追踪路径
TRACE方法是让Web服务器端将之前的请求通信回环给客户端的方法。
-
CONNECT:要求隧道协议连接代理
CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。
HTTP状态码
类别 | 原因短语 | |
---|---|---|
1XX | Informational(信息性状态码 | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求错误 |