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

目录

一、HTTP概述

二、HTTP的特点

三、HTTP请求的完整流程

四、HTTP请求报文的完整格式

五、HTTP的缺点?


一、HTTP概述

HTTP是一个应用层的协议,全称是超文本传输协议,它是web的核心。HTTP由两个程序实现——客户端程序和服务端程序,而HTTP的作用简单来说就是客户端向服务器发请求,而服务器根据请求做出响应HTTP定义了Web客户端向服务器请求资源的方式,以及Web服务器向客户端回送资源的方式,也就是HTTP请求+响应模型。客户端向服务器发送请求报文请求资源,服务器接收到请求,向客户端回送包含这些资源的响应报文。

HTTP请求的资源一般是一个Web页面,而一个Web页面是由一个或多个对象组成的,这个对象可能是一个html文件,一张图片,甚至是一段视频或者小程序。对于HTTP来说,组成一个Web页面的这些对象并不属于同一个资源,每一个对象都是一个单独的资源,需要逐一请求。假设我们向服务器请求一个Web页面,这个页面由一个html文件以及5张图片组成(html通过路径引用图片),则这个页面共有6个对象,当服务器接收到客户端对页面的请求后,将html文件通过响应报文返回,而客户端接收到响应的html文件后,发现它还引用了5张图片,这时客户端将再次发送5HTTP请求,来分别请求这5张图片。

服务器向客户端发送被请求的文件,但是不记录任何客户的信息,所以当你连续向服务器请求同一份资源两次时,服务器也会给你响应两次,不会因为你已经请求过就不给你响应了。正是因为HTTP不记录客户的信息,所以它也是一个无状态协议

HTTP默认的端口号为80,HTTPS的端口号为443

HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。

二、HTTP的特点

? ? 1、简单快速:客户向服务器请求服务时,只需传送请求方法路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

? ? 2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

? ? 3、HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象,采用这种方式可以节省传输时间。

? ? 4、无状态:HTTP协议是无状态协议无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

? ?5、支持B/S及C/S模式。

?三、HTTP请求的完整流程

1、地址解析
从客户端请求路径中解析协议名、主机名、端口、资源路径等信息。
如果是域名,需要通过DNS服务器获取域名主机的IP地址,然后再解析响应的端口和资源对象路径。

2、封装HTTP请求数据包
将上一步解析的数据与本机信息封装成一个HTTP请求数据包。

3、建立TCP连接
通过TCP协议与服务端建立网络连接。

4、客户端发送请求命令
建立TCP连接后,将HTTP数据包发送给服务端,这个包就是HTTP请求,请求行中包括请求方法、资源标识符URI和HTTP版本号。后面跟着各种首部字段,包括请求和响应的各种条件和属性的各类首部。

5、服务器响应
服务器接收到请求后,回复响应报文,响应报文的状态行包括:响应结果的状态码,原因短语和HTTP版本。后面同样首部字段,然后用一个空格行作为间隔,最后报文主体,也就是实际请求的数据。

6、服务器关闭TCP连接
当服务端完成数据响应,它就会关闭这个TCP连接。但是如果请求头的首部字段中的Connection属性值为keep-alive,那么TCP连接还是会保持再连接状态。

URI:统一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行标识的。
URL:是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位 符”。
URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。

四、HTTP请求报文的完整格式

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:

1、请求方法URI协议/版本
请求的第一行是“方法URL议/版本”:GET/sample.jsp HTTP/1.1
以上代码中“GET”代表请求方法,“/sample.jsp”表示URI,“HTTP/1.1代表协议和协议的版本。
根据HTTP标准,HTTP请求可以使用多种请求方法。例如:HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet应用中,最常用的方法是GET和POST。
URL完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头,最后,协议版本声明了通信过程中使用HTTP的版本。

2、请求头(Request Header)
请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。

3、请求正文
请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息:
username=jinqiao&password=1234
在以上的例子的HTTP请求中,请求的正文只有一行内容。当然,在实际应用中,HTTP请求正文可以包含更多的内容。

五、HTTP的缺点?

  • 通信使用明文,内容可能会被窃听。
  • 不验证通信方的身份,可能遭遇伪装。
  • 无法证明报文的正确性,可能被篡改。
  网络协议 最新文章
使用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:10:39 
 
开发: 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年7日历 -2024/7/3 12:00:16-

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