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 1.0和HTTP 1.1

? ? ?~HTTP消息

HTTP请求消息

? ? ?~HTTP请求行

? ? ~HTTP请求消息头

HTTP概述

? ?~HTTP介绍

HTTP是超文本,HTTP专门用于定义浏览器与服务器之间交换数据的过程以及数据本身的格式。它是一种请求/响应式协议,客户端在与服务器端建立连接后,就可以向服务器端发送请求,这种请求被称作HTTP请求,服务器端接收到请求后会做出响应,称为HTTP响应。

以下是HTTP协议的特点:

(1)支持客户端(浏览器就是一种Web客户端)/服务器模式。

(2)简洁快速:客户端向服务器请求服务是时,只需传送请求方式和路径。常用的请求方式有GET、POST等,每种方式规定了客户端与服务器联系的类型不同。由于HTTP简单,使得HTTP服务器的程序规模小,因而通讯速度很快。

(3)灵活:HTTP允许传输任意类型的数据,正在传输的数据类型由Content-Type加以标记。

(4)无状态:HTTP是无状态协议。无状态是指协议对于事务处理没有记忆能力,如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

? ? HTTP 1.0和HTTP 1.1

先来介绍一下HTTP 1.0,HTTP 1.0协议的客户端与服务器在交互过程中需要经过建立连接、发送请求信息、回送响应信息,关闭连接4个步骤。客户端与服务器建立连接关系后,每次只能处理一个HTTP请求,对于内容丰富的网页来说,这样的通信方式明显由缺陷。例如,下面的一段HTML代码:

<html>
    <body>
        <img src="/image01.jpg">
        <img src="/image02.jpg">
        <img src="/image03.jpg">
    </body>
</html>

这段HTML文档中包含3个<img>标记,由于<img>标记的src属性指明的是图片的URL地址,因此,当客户端访问这些图片时,需要发生3次请求,并且每次请求都需要与服务器重新建立连接。这样十分的影响网页的访问速度。

然后再讲解一下另一个版本HTTP 1.1,为了克服HTTP 1.0的缺陷,HTTP 1.1进行了升级,它支持持久连接也就是说在一个TCP连接上可以传送多个HTTP请求和响应,从而减少了建立和关闭连接的消耗和延时。当客户端与服务器端建立连接后,客户端可以向服务器发送多个请求,并且在发送下个请求时,无需等待上次请求的返回结果。但服务器必须按照接受客户端请求的先后顺序依次返回响应结果,以保证客户端能够区分出每次请求的响应内容。由此可见,HTTP 1.1不仅继承了HTTP 1.0的优点,而且有效的解决了HTTP 1.0的性能问题,显著的减少了浏览器与服务器交互所需要的时间。

? ? HTTP消息

? ? 当用户在浏览器中访问某个URL地址、单击网页的某个超链接或者提交网页上的form表单时,浏览器都会向服务器发送请求数据,级HTTP请求信息。服务器接收到请求数据后,会将处理后的数据回送给客户端,级HTTP响应消息。HTTP请求消息和HTTP响应消息统称为HTTP消息。

? ? 在HTTP消息中,除了服务器端的响应实体内容(HTML 网页、图片等)以外,其他信息对用户都是不可见的,要想观察这些“隐藏”的信息,需要借助一些网络查看工具。这里使用的版本为24.0的Firefox浏览器的Firebug插件,它是浏览器Firefox的一个扩展,是一个免费、开源网页开发工具,用户可以利用它编辑、删改任何网站的CSS、HTML、DOM与JavaScript代码。

? ? 浏览器和服务器通信的HTTP消息可以通过单击“网络”按钮进行查看。为了帮助读者更好的理解HTTP消息,下面是利用Firebug插件查看HTTP消息:

1)在浏览器中的地址栏中输入www.baidu.com访问百度首页,在Firebug的工具栏中可以看到请求的URL地址。

2)单击URL地址左边的“+”号,在展开的默认头信息选项卡中可以看到格式化后的响应头信息和请求头信息。单击请求头信息一栏左边的“原始头信息”,可以看到原始的请求头信息,具体如下所示:

GET/HTTP/1.1
Host:www.baidu.com
User-Agent:Mozilla/5.0(Windows NT 5.1;rv:25.0)Gecko/20100101 Firebox/25.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding:gzip,deflate
Connection:keep-alive

在上述请求信息中,第1行为请求行,请求行后面的为请求头信息,空行代表请求头的结束。关于请求消息的其他相关知识,将在后面的章节进行详细讲解。

3)单击响应头信息一栏左边的“原始头信息”,可以看到原始的响应头信息,如下所示:

HTTP/1.1 200 OK
Date:Fri,11 Oct 2013 06:48:44 GMT
Content-Type:text/html;charset=utf-8
Transfer-Encoding:chunked
Connection:Keep-Alive
Vary:Accept-Encoding
Expires:Fri,11 Oct 2013 06:47:47 GMT
Cache-Control:private
Server:BWS/1.0

在上面响应的消息中第一行为响应状态行,响应状态行后面的为响应消息头,空行代表响应消息头的结束。

?HTTP请求消息

在HTTP中,一个完整的请求信息消息是由请求行、请求头和实体内容三部分组成,其中,每部分都有各自不同的作用。

? ?~HTTP请求行

HTTP请求行位于请求信息的第1行,它包括3部分,分别是请求方式资源路径以及所使用的HTTP版本,具体示例如下:

GET/index.html HTTP/1.1

? ?这个就是一个HTTP请求行,其中GET是请求方式,index.html是请求资源路径,HTTP/1.1是通信使用的协议版本。需要注意的是,请求行中的每个部分需要用空格分隔,最后要以回车换行结束。

? ? ?在HTTP的请求消息中,请求方式有GET、POST、HEAD、OPTIONS、DELETE、TRACE、PUT和CONNECT 8种,每种方式都指明了操作服务器中指定URI资源的方式。

? ?~HTTP请求消息头

在HTTP请求消息中,请求行之后便是若干请求消息头。请求消息头主要用于向服务器端传递附加信息,例如,客户端可以接收的数据类型、压缩方法、语言以及发送请求的超链接所属页面的URL地址等信息,示例如下:

Host:localhost:8080
Accept:image/gif,image/x-xbitmap,*
Referer:http://localhost:8080/itcast/
Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding:gzip,deflate
Content-Type:application/x-www-form-urlencoded
User-Agent:Mozilla/4.0(compatible;MSIE 7.0;Windows NT 5.1;GTB6.5;CIBA)
Connection:Keep-Alive
Cache-Control:no-cache

从上面的请求消息头可以看出,每个请求消息头都是一个头字段名称和一个值构成,头字段名称和值之间用冒号(:)和空格( )分隔,每个请求消息头之后使用一个回车换行符标志结束。需要注意的是,头字段名称不区分大小写,但习惯上将单词的第1个字母大写。当浏览器发送请求给服务器时,会根据功能需求的不同,发送的请求消息头也不相同。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:37:00  更:2022-02-14 21:38:34 
 
开发: 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/16 5:36:30-

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