在学习计算机网络的原理时往往采取综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构

从至,数据是一层层封装,封装的方式一般都是在原有数据的前面加一个,数据封装格式如下:

http1.0
- HTTP/1.0:客户端可以与web服务器联结之后,只能获得一个web资源
http2.0
- HTTP/1.1:客户端可以与web服务器连接之后,一可以获得多个web资源
超文本传输协议(,简称HTTP)是应用层协议,自 1990 年起,HTTP 就已经被应用于 WWW 全球信息服务系统。
HTTP 是一种请求/响应式的协议。一个客户机与服务器建立连接后,发送一个请求给服务器;服务器接到请求后,给予相应的响应信息。
HTTP协议的主要特点:
- 基于请求/应答模式,客户端发送一个请求,服务器返回一个应答;
- HTTP协议是一个无状态协议,无状态意味着对服务器而言,每次请求都是独立无关联的,服务器不用存储记忆上次请求的数据和状态,处理速度会比较快
HTTP协议格式也比较简单,格式如下:

1. 关于HTTP消息头
HTTP消息头是在,客户端请求(Request)或服务器响应(Response)时传递的,位请求或响应的第一行, HTTP消息体(请求或响应的内容)是其后传输。,以明文的字符串格式传送,是以冒号分隔的键/值对,如: Accept-Charset: utf-8,每一个消息头最后以回车符( CR)和换行符( LF)结尾。结束后,会用一个空白的字段来标识,这样就会出现两个连续的。
支持自定义, 自定义的专用消息头一般会添加前缀。
2. 常用的请求头
Connection: Upgrade固定Cookie由之前服务器通过Set-Cookie(见下文)设置的一个HTTP协议CookieCookie: $Version=1; Skin=new;固定:标准Content-Type请求体的MIME类型 (用于POST和PUT请求中)Content-Type: application/x-www-form-urlencoded固定User-Agent浏览器的身份标识字符串User-Agent: Mozilla/……固定
3. 常用的响应头
4.HTTP请求及响应的例子
HTTP协议举例:

1.URL结构
HTTP使用统一资源标识符(URl)来传输数据和建立连接。URL(统一资源定位符)是一种特殊种类的URI,包含了用于查找的资源的足够的信息,我们一般常用的就是URL,而一个完整的URL包含下面几部分:
http:// www.fishbay.cn: 80/mix/76.html?name=kelvin&password=#first
2.Request讲解
HTTP的请求包括:请求行()、请求头部()、空行 和 请求数据 四个部分组成。

HTTP请求消息结构,抓包的request结构如下:
(1).请求行
为请求类型,为要访问的资源,是协议版本
(2).请求头部
从第二行起为请求头部,指出请求的目的地(主机域名);是客户端的信息,它是检测浏览器类型的重要信息,由浏览器定义,并且在每个请求中自动发送。
(3).空行
请求头后面必须有一个空行
(4).请求数据
请求的数据也叫请求体,可以添加任意的其它数据。这个例子的请求体为空。
3.Reponse讲解
一般情况下,服务器收到客户端的请求后,就会有一个的响应消息,HTTP响应也由部分组成,分别是:状态行、响应头、空行 和 响应体。

http响应消息格式,抓包的数据如下:
(1).状态行
状态行由协议版本号、状态码、状态消息组成
(2).响应头
响应头是客户端可以使用的一些信息,如:(生成响应的日期)、(MIME类型及编码格式)、(默认是长连接)等等
(3).空行
响应头和响应体之间必须有一个空行
(4).响应体
响应正文,本例中是键值对信息
3.状态码
协议的状态码由位数字组成,第一个数字定义了响应的类别,共有中类别:
1.: 指示信息–表示请求已接收,继续处理
2.: 成功–表示请求已被成功接收、理解、接受
3.: 重定向–要完成请求必须进行更进一步的操作
4.: 客户端错误–请求有语法错误或请求无法实现
5.: 服务器端错误–服务器未能实现合法的请求
其中,常用的状态码如下:
4.请求方法
定义了多种请求方法,来满足各种需求。定义了三种请求方法:、 和 ,到了,新增了五种请求方法:、、、 和 。各个请求方法的具体功能如下:
实际应用过程中,和使用的比较多,下面主要介绍一下二者的区别:
(1).请求参数的区别
请求会把请求的参数拼接在后面,以分隔,多个参数之间用连接;如果是英文或数字,原样发送,如果是空格或中文,则用Base64编码
请求会把提交的数据放在请求体中,不会在中显示出来
(2).传输数据的大小
: 由于数据不是通过传递,所以一般可以传输较大量的数据
(3).数据解析
: 通过获取变量的值
: 通过获取变量的值
(4).安全性
: 请求参数在后面,可以直接看到,尤其是登录时,如果登录界面被浏览器缓存,其他人就可以通过查看历史记录,拿到账户和密码
: 请求参数在请求体里面传输,无法直接拿到,相对安全性较高;但是通过抓包工具,还是可以看到请求参数的
5.工作原理
协议采用请求/响应模式,客户端向服务器发送一个请求报文,然后服务器响应请求。下面介绍一下一次请求的过程:
- 在浏览器中输入,并按下回车键
- 浏览器向服务器请求解析该中的域名对应的地址(如果是请求,则不需要该步骤)
- 解析出后,根据和端口号,和服务器建立TCP连接
- 浏览器向服务器发送请求,该请求报文作为三次握手的第三个报文发送给服务器
- 服务器做出响应,把数据发送给浏览器
- 通信完成,断开连接
- 浏览器解析收到的数据并显示
是安全的通道,即在HTTP通信中加入了层(当前版本是),通信的数据被加密了,防止被窃取,具体的通信流程如下:

图3
HTTPS使用的加密方式结合了对称加密和不对称加密的特点,在保证安全的情况下,又提高了传输效率。HTTP和HTTPS的区别如下:
- https协议需要到ca申请证书,一般免费证书很少,需要交费。
- http的信息是明文传输,https 则是具有安全性的ssl加密传输协议。
- http和https用的端口不一样,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/5988.html