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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> (二)、自己动手写Web框架之HTTP基础知识 -> 正文阅读

[网络协议](二)、自己动手写Web框架之HTTP基础知识

(二)、自己动手写Web框架之HTTP基础知识

1、什么是http

http是一种客户端-服务端通讯协议,一般浏览器充当客户端,而像IIS、Nginx、Tomcat等软件充当服务器,用于在两台电脑之间传输超文本文档内容而定义的交互协议,工作在tcp/ip协议之上的应用层协议。

2、http通讯的基本流程

一次http交互一般包含以下三个流程:
1、由客户端(浏览器)建立TCP连接
2、客户端(浏览器)发送请求报文并等待服务器的应答
3、服务器接收客户端的请求并按约定的协议规则响应请求

3、http连接管理

http有三种连接处理模型,分别为短连接、长连接和流水线
在早期的时候(http1.0),http默认采用短连接模式,即每次请求响应结束后,服务器和浏览器都关闭各自的tcp连接,这种模型连接效率比较低,因而在http1.1中进行了优化。
http1.1默认采用的是长连接模型,长连接在建立tcp连接后不会响应完就关闭,而是会保持一段时间的连接,多个请求可以复用一个tcp连接,服务器可以使用Keep-Alive标头来指示客户端最小的连接保持时间,然而长连接也有缺点,就是是在空闲时间,也还是会消耗服务器资源。
流水线技术是在同一连接上连续发送请求,不用等待服务器的响应后再发送请求。因而更能提高效率,但http1.1默认还是使用的长连接。

4、请求报文

一个http请求包含以下内容:
1、起始行,单独占一行。主要包含三个元素
1)、http请求方法,比如:GET、POST、DELETE等
2)、请求目标,一般是一个url地址
3)、http版本
2、请求头
请求头的基本格式为:名称:值,可以由多个,每行一个这种格式
3、空行
这个行用于分割请求头和请求体,是一个空白行
4、请求体(可选)
请求体一般是Post请求的数据,可分为两类:
1、单文件,由Content-Type和Content-Length定义
2、多文件,每部分都有Content-Type,用boundary字符串分割

5、响应报文

1、状态行
包含协议版本、状态码、状态文本三部分内容,例如:http/1.1 200 OK
2、响应头,跟请求头格式一样
3、空行
4、响应体(可选)
响应体可分为三类,
1)、已知长度的单个文件,由Content-Type和Content-Length定义
2)、未知长度的单个文件,通过设置Transfer-Encoding:chunked来使用chunks编码
3)、多部分内容,比较少见

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:34:57  更:2022-10-31 12:38:43 
 
开发: 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年11日历 -2024/11/25 20:24:23-

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