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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Http协议 -> 正文阅读

[网络协议]Http协议

  • 超文本传输协议
  • 一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)
  • 是在 Web 上进行数据交换的基础,是一种 client-server 协议
  • 请求通常是由像浏览器这样的接受方发起的
  • 是一种可扩展的协议
  • 是应用层的协议,通过TCP,或者是TLS-加密的TCP连接来发送,理论上任何可靠的传输协议都可以使用
  • 它不仅被用来传输超文本文档,还用来传输图片、视频或者向服务器发送如HTML表单这样的信息。HTTP还可以根据网页需求,仅获取部分Web文档内容更新网页。

请求-响应

??????? 1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址

??????? 2. 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接

??????? 3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器

??????? 4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;

??????? 5. 释放 TCP连接;

??????? 6. 浏览器解析该 html 文本并显示内容;  

HTTP报文

??????? 1.请求报文:

??????????????? 1.1. 客户端向服务端发送请求的信号

??????????????? 1.2. 组成:

??????????????????????? 请求行

??????????????????????????????? 组成:空格分隔,回车和换行符结尾

?????????????????????????????????? (1)请求方法:get、post、head、put、delete、options、trace、connect

????????????????????????????????????????????????get

??????????????????????????????????????????????????????? 1. 通常用于当客户端要从服务器中读取文档时

??????????????????????????????????????????????????????? 2. 请求参数和对应的值是跟在URL后面,比较不安全、不保密

????????????????????????????????????????????????????????????????通过问号(“?”)和and连接符(“&”)以及“=”号连接

??????????????????????????????????????????????????????? 3. 要求服务器将URL定位的资源放在响应报文的数据部分,

????????????????????????????????????????????????????????????????回送给客户端

??????????????????????????????????????????????????????? 4. get方法http报文没有请求体

??????????????????????????????????????????????????????? 5. 浏览器对地址的字符长度有限制,各自标准不同,一般

????????????????????????????????????????????????????????????????不超过1024个字符,传输的数据量比较大时不宜使用GET

??????????????????????????????????????????????????????? 5. 如 /index.php?id=100&slec=yes

??????????????????????????????????????????????? post

??????????????????????????????????????????????????????? 传输的数据封装在报文的请求体,对传输的数据大小没有限制

?????????????????????????????????????????????????????????可以传大量的数据,比较私密和安全。

?????????????????????????????????? (2)URL

?????????????????????????????????? (3)HTTP协议版本

?????????????????????? 如? GET /index.php HTTP/1.1

????????????????????????GET是请求方法,/index.php是URL,HTTP/1.1表示HTTP版本为1.1

??????????????????????? 请求头

????????????????????????????????告知服务器所有有关于客户端请求的信息

??????????????????????????????? 组成:键值对(key : value)

???????????????????????????? 常用

???????????????????????????????? Accept:客户端可识别的内容类型列

???????????????????????????????????????????????text/html,application/xhtml+xml,application/xml

????????????????????????????????Accept-Encoding:客户端可接受的编码压缩格式 gzip, deflate, br

????????????????????????????????Accept-Language:客户端可接受的自然语言

?????????????????????????????????????????????? zh-CN,zh;q=0.8,en;q=0.6,id;q=0.4;

??????????????????????????????? Connection:连接方式

??????????????????????????????? ????????close(完成连接后断开)、keep-alive(和服务器连接持续有效,

????????????????????????????????????????如有后续请求可直接http正文传输,避免建立或重新建立连接)

????????????????????????????????Cookie:存储客户端扩展字段,向同一域名服务端发送该域的cookie?

??????????????????????????????? ????????PSTM=1490844191; ??????????????????????????????? ??????????????????????????????? ????????????????????????????????????????BIDUPSID=2145FF54639208435F60E1E165379255;

????????????????????????????????Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机

??????????????????????????????? User-Agent:用户电脑信息、浏览器信息等

???????????????????????????????????????????????Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) ?????????????????????????????????????????????? Gecko/20100101 Firefox/93.0

??????????????????????? 空体

????????????????????????????????用户进行内容分割,表示请求头到此为止,下一行的内容不再是请求头

??????????????????????? 请求体

????????????????????????????????包含请求数据,使用GET方法时,没有请求体

??????? 2.响应报文:

??????????????? 2.1 服务端响应处理后回传给客户端的信号

??????????????? 2.2 组成:

??????????????????????? 状态行

????????????????????????????????格式为:HTTP-Version Status-Code Reason-Phrase CRLF

????????????????????????????????HTTP-Version表示服务器HTTP协议的版本

????????????????????????????????Status-Code表示服务器发回的响应状态代码

??????????????????????????????? Reason-Phrase表示状态代码的文本描述

????????????????????????????????状态代码由三位数字组成,第一个数字定义响应的类别,有五种可能取值

????????????????????????????????1xx:指示信息--表示请求已接收,继续处理。

????????????????????????????????2xx:成功--表示请求已被成功接收、理解、接受。

????????????????????????????????3xx:重定向--要完成请求必须进行更进一步的操作。

????????????????????????????????4xx:客户端错误--请求有语法错误或请求无法实现。

????????????????????????????????5xx:服务器端错误--服务器未能实现合法的请求。

??????????????????????? 各类型常见状态代码、状态描述的说明如下:

????????????????????????????????200 OK:客户端请求成功。

????????????????????????????????400 Bad Request:客户端请求有语法错误,不能被服务器所理解。

????????????????????????????????401 Unauthorized:请求未经授权,这个状态代码必须和WWW-

????????????????????????????????????????????????????????????????Authenticate报头域一起使用。

????????????????????????????????403 Forbidden:服务器收到请求,但是拒绝提供服务。

????????????????????????????????404 Not Found:请求资源不存在,举个例子:输入了错误的URL。

????????????????????????????????500 Internal Server Error:服务器发生不可预期的错误。

????????????????????????????????503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间

??????????????????????????????????????????????????????? 后可能恢复正常,如:HTTP/1.1 200 OK(CRLF)

??????????????????????? 响应头

????????????????????????????????响应头域允许服务器传递不能放在状态行的附加信息,这些域主要描述服务器

????????????????????????????????的信息和Request-URI进一步的信息

????????????????????????????????Server:包含处理请求的原始服务器的软件信息;

????????????????????????????????Date:服务器日期;

????????????????????????????????Content-Type:返回的资源类型 (MIME);

????????????????????????????????Connection:连接方式

????????????????????????????????????????close:连接已经关闭;

????????????????????????????????????????keep-alive:连接已保持,在等待本次连接的后续请求;

????????????????????????????????????????Cache-Control:缓存控制;

????????????????????????????????Expires:设置过期时间;

????????????????????????????????Set-Cookie:设置 Cookie 信息。

??????????????????????? 空行

??????????????????????????????? 内容分割,表示以下不再是响应头的内容

??????????????????????? 响应正文

????????????????????????????????服务器返回给浏览器的响应信息

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

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