当前位置:   article > 正文

计算机通识之HTTP协议(三)

计算机通识之HTTP协议(三)

HTTP协议

目录

1、HTTP报文识别

1.1 HTTP请求(Request)

1.2 HTTP响应(response)

HTTP响应头各参数具体含义

1.3 报文分析案例

2、HTTP请求方法

2.1 简单介绍

2.2 HTTP请求的方法

3、常见HTTP状态码

4、HTTPS基本概念

4.1 什么是HTTPS?

4.2 为什么需要HTTPS?

4.3 HTTPS和HTTP的共同点

4.4 HTTPS和HTTP的不同点

4.5 HTTPS的工作


1、HTTP报文识别

1.1 HTTP请求(Request

HTTP请求格式如下图

HTTP请求报文的构成如下图

Header

解释

Accept

指定客户端能够接收的内容类型

Referer

先前网页的地址,当前请求网页紧随其后,即来路

Accept-Language

浏览器可接受的语言

User-Agent

User-Agent的内容包含发出请求的用户信息

Content-Type

请求的与实体对应的MIME信息

Host

指定请求的服务器的域名和端口号

Content-Length

请求的内容长度

Connection

表示是否需要持久连接。(HTTP 1.1 默认进行持久连接)

Cache-Control

指定请求和响应遵循的缓存机制

Cookie

HTTP请求发送时,会把保存在该请求域下的所有cookie值一起发送给web服务器

HTTP请求头各参数具体含义

1.2 HTTP响应(response

HTTP响应格式如下图

HTTP响应报文的格式如下图

Header

解释

Server

Web服务器软件名称

Content-Type

返回内容的MIME类型

Transfer-Encoding

文件传输编码

Date

原始服务器消息发出的时间

HTTP响应头各参数具体含义

1.3 报文分析案例

通用信息头 General

既能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,可以理解为为了一眼瞄过去,就能了解报文信息而存在。

Request URL:请求的URL

Request Method:请求的方法类型

Status Code:响应的状态码和结果

Remote Address:远程服务器地址

Referrer Policy:从哪个页面跳转过来的,图中的含义为:当发生降级(比如从 https:// 跳转到 http:// )时,不传递 Referrer 报头。

响应头 Response Headers

Connection:当前连接是否需要保持

Content-Encoding:与请求报头Accept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码

Content-Type:返回的响应MIME类型与编码,用于告诉浏览器它发送的数据属于什么文件类型

Date:原始服务器消息发出的时间

Transfer-Encoding:传输编码

Content-Length:指明实体正文的长度,用以字节方式存储的十进制数字来表示

Content-Language:描述了资源所用的自然语言,与Accept-Language对应

Keep-Alive:保持连接的时间

Server:使用的服务器名称

请求头 Request Headers

Accept:告诉服务器可以接受的文件格式

Accept-Encoding:指定浏览器可以支持的web服务器返回的内容压缩编码类型

Accept-Language:浏览器支持的语言

Cache-Control:指定请求和响应遵循的缓存机制

Connection:表示是否需要持久连接

Host:用于指定被请求资源的Internet主机和端口号

Origin:用来说明请求从哪里发起的,包括,且仅仅包括协议和域名

Referer:告诉服务器是从哪个网站链接过来的,服务器请求的原始资源的URI

User-Agent:客户端将它的操作系统、浏览器和其他属性告诉服务器

Accept-Charset:用于指定客户端接受的字符集

Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器

2、HTTP请求方法

2.1 简单介绍

HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范。HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的。当我们没有指定端口访问时,浏览器会默认帮我们添加80端口。我们也可以自己指定访问端口如:http://www.ip138.com:80。 需要注意的是,现在大多数访问都使用了HTTPS协议,而HTTPS的默认端口为443,如果使用80端口访问HTTPS协议的服务器可能会被拒绝。

2.2 HTTP请求的方法

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法

3、常见HTTP状态码

常见的HTTP状态码

200

请求成功

301

跳转到指定地址,跳转的地址通过Location指定,代表永久性转移

302

跳转到指定地址,跳转的地址通过Location指定,代表暂时性转移

304

本地缓存的资源是最新的,浏览器从本地缓存中读取对应的资源

400

客户端请求有语法错误,不能被服务器识别

403

服务器收到请求,但是拒绝提供服务

404

请求的资源不存在

500

服务器发生不可预期的错误

502

网关错误

503

服务器暂时不可用

4、HTTPS基本概念

4.1 什么是HTTPS

HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。

你也可以说:HTTPS = HTTP + SSL

HTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。

4.2 为什么需要HTTPS?

超文本传输协议 (HTTP) 是一个用来通过互联网传输和接收信息的协议。HTTP 使用请求/响应的过程,因此信息可在服务器间快速、轻松而且精确的进行传输。当你访问 Web 页面的时候你就是在使用 HTTP 协议,但 HTTP 是不安全的,可以轻松窃听你跟 Web 服务器之间的数据传输。在很多情况下,客户和服务器之间传输的是敏感信息,需要防止未经授权的访问。为了满足这个要求,网景公司(Netscape)推出了 HTTPS,也就是基于安全套接字层的 HTTP 协议。

4.3 HTTPSHTTP的共同点

大多数情况下,HTTP 和 HTTPS 是相同的,因为都是采用同一个基础的协议,作为 HTTP 或 HTTPS 客户端——浏览器,设立一个连接到 Web 服务器指定的端口。当服务器接收到请求,它会返回一个状态码以及消息,这个回应可能是请求信息或者指示某个错误发送的错误信息。系统使用统一资源定位器 URI 模式,因此资源可以被唯一指定。而 HTTPS 和 HTTP 唯一不同的只是一个协议头(https)的说明,其他都是一样的。

4.4 HTTPSHTTP的不同点

1. HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头

2. HTTP 是不安全的,而 HTTPS 是安全的

3. HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443

4. 在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层

5. HTTP 无需加密,而 HTTPS 对传输的数据进行加密

6. HTTP 无需证书,而 HTTPS 需要认证证书

4.5 HTTPS的工作

使用 HTTPS 连接时,服务器要求有公钥和签名的证书。

当使用 https 连接,服务器响应初始连接,并提供它所支持的加密方法。作为回应,客户端选择一个连接方法,并且客户端和服务器端交换证书验证彼此身份。完成之后,在确保使用相同密钥的情况下传输加密信息,然后关闭连接。为了提供 https 连接支持,服务器必须有一个

公钥证书,该证书包含经过证书机构认证的密钥信息,大部分证书都是通过第三方机构授权的,以保证证书是安全的。

换句话说,HTTPS 跟 HTTP 一样,只不过增加了 SSL。

HTTP 包含如下动作:

1. 浏览器打开一个 TCP 连接

2. 浏览器发送 HTTP 请求到服务器端

3. 服务器发送 HTTP 回应信息到浏览器

4. TCP 连接关闭

SSL 包含如下动作:

1. 验证服务器端

2. 允许客户端和服务器端选择加密算法和密码,确保双方都支持

3. 验证客户端(可选)

4. 使用公钥加密技术来生成共享加密数据

5. 创建一个加密的 SSL 连接

6. 基于该 SSL 连接传递 HTTP 请求

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/782161
推荐阅读
相关标签
  

闽ICP备14008679号