IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 2. HTTP协议基础 -> 正文阅读

[网络协议]2. HTTP协议基础

HTTP协议用于客户端和服务端之间的通信

应用HTTP协议时,必定是一段担任客户端,另一端担任服务器端

且HTTP协议可以明确区分哪端是客户端或服务器端

2.1 请求和响应

请求必定由客户端发出,肯定是先从客户端开始建立通信,服务端在没有接收到请求之前不会发送响应

image

客户端发送给HTTP服务器端请求报文的格式:

GET /index.html HTTP/1.1
Host: hackr.jp

..........

上面的报文:

请求方法(method):GET

请求URI: /index/html

协议版本:HTTP/1.1

可选的请求首部字段:Host: hackr.jp

内容实体

响应报文的构成:

image

2.2 HTTP协议

HTTP协议是stateless的协议(无状态),自身不对请求和响应之间的通信状态保存

image

为了保存状态:引入了Cookie技术

2.3 如何定位资源

HTTP使用URI定位资源

客户端请求访问资源发送请求时,URI要将请求URI包含在内

指定方式:image

如果是对服务器本身发起请求,则可以用*代替URI:

OPTIONS * HTTP/1.1

此例子为查询HTTP服务器端支持的HTTP方法种类

2.4 请求报文中的method

用于告知服务器:客户端的意图

image

其中LINK,UNLINK已经被HTTP/1.1废弃了

GET

用于来请求访问已经被URI识别的资源,如果请求的是文本,则原样返回,如果是类似CGI的程序,则返回执行后的输出结果

image

POST

用于传输实体的主体

GET也可以传输实体的主体,但是一般是使用POST(用于传输数据)

image

PUT

用于传输文件,但是不带验证机制,所以一般不用

要求在请求报文的主体中包含文件内容,保存到请求URI指定的位置

响应:请求执行成功但是没有数据返回

获取报文首部

image

用于确认URI的有效性以及资源更新的日期时间等

DELETE

删除文件,(不带验证机制所以一般也不用)

OPTIONS

查询支持的方法

image

TARCE

追踪路径

在Max-Forwards首部字段填入数值,经过一个服务器端就减1,减为0时,停止传输,最后接收到请求的服务端返回状态码200 OK的响应

image

CONNECT

image

2. 5 HTTP/1.1:持久连接

早期的HTTP通信:image

持久连接可以在建立一次TCP连接后进性多次请求和响应的交互,节省通信量

只要任意一端没有明确提出断开连接,就保持TCP连接状态

image

减少了TCP连接的重复建立和断开造成的额外开销,减轻服务器负载,减少开销时间,让HTTP请求响应更早结束

HTTP/1.1中所有连接默认都是持久连接

2.5.2 管线化

管线化使得发送请求后无需等待响应即可发送下一请求

image

通过在请求和响应报文中写入Cookie信息来控制客户端的状态

HTTP是无状态协议,不对之前发生过的请求和响应的状态做管理

Cookie通过在请求和响应报文中写入Cookie信息来控制客户端的状态

根据从服务器端发送的响应报文中的set-Cookie首部字段信息,通知客户端保存Cookie

,下一次客户端再次发送请求时(向该服务端),会自动在请求报文中写入Cookie值

服务器接收后会根据Cookie对比自己的记录

image

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:44:23  更:2021-10-18 17:45:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/21 9:11:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码