五分钟读懂http,https

tech2025-04-17  3

文章目录

http,https入门一、http1、what(是什么?)2、工作原理3、客户端请求消息3、服务器响应消息 二、https1、what(是什么?)2、原理


http,https入门

一、http

1、what(是什么?)

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

2、工作原理

HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

URL组成: http://    dashixiong  :   80       /blog/         ?num=1    #index 协议     域名或ip地址   端口    文件路径   参数          片段

以下图表展示了HTTP协议通信流程:

​客户端<-------HTTP-------> HTTP server <----> CGI <----> Database

HTTP三点注意事项:

HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

3、客户端请求消息

组成: 请求行、请求头、空行、请求数据 HTTP 请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。

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

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

序号方法描述1GET请求指定的页面信息,并返回实体主体。2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。4PUT从客户端向服务器传送的数据取代指定的文档的内容。5DELETE请求服务器删除指定的页面。6CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。7OPTIONS允许客户端查看服务器的性能。8TRACE回显服务器收到的请求,主要用于测试或诊断。 GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi

3、服务器响应消息

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

下面是常见的HTTP状态码:

200 - 请求成功301 - 资源(网页等)被永久转移到其它URL302 - 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI403 - 服务器拒绝执行此请求404 - 请求的资源(网页等)不存在500 - 内部服务器错误502 - 从远程服务器接收到了一个无效的响应504 - 未及时从远端服务器获取请求

HTTP状态码分类

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

分类分类描述1**信息,服务器收到请求,需要请求者继续执行操作2**成功,操作被成功接收并处理3**重定向,需要进一步的操作以完成请求4**客户端错误,请求包含语法错误或无法完成请求5**服务器错误,服务器在处理请求的过程中发生了错误 HTTP/1.1 200 OK # 状态栏 Date: Mon, 27 Jul 2009 12:28:53 GMT #日期 Server: Apache #服务器名字 Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT #文档的最后改动时间 ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 #表示内容长度。 Vary: Accept-Encoding Content-Type: text/plain #表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需 要显式地指定为text/html。

二、https

1、what(是什么?)

HTTPS 协议:可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层。

HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。

SSL(Secure Socket Layer,安全套接字层):SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。

2、原理

HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程,数据全部明文传输,“裸奔”在互联网上,所以很容易遭到黑客的攻击,如下:

HTTPS,在http的基础上将对称加密,非对称加密两者结合起来,发挥两者的各自的优势。同时采用SSL证书安全获取公钥的方式(确认服务器身份)。

SSL 证书中包含的具体内容有:

(1)证书的发布机构CA

(2)证书的有效期

(3)公钥

(4)证书所有者

(5)签名

HTTPS相比HTTP,优缺点 优点: (1) 所有信息都是加密传播,黑客无法窃听。 (2) 具有校验机制,一旦被篡改,通信双方会立刻发现。 (3) 配备身份证书,防止身份被冒充。

缺点:

SSL 证书费用很高,以及其在服务器上的部署、更新维护非常繁琐HTTPS 降低用户访问速度(多次握手)网站改用HTTPS 以后,由HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用302跳转)HTTPS 涉及到的安全算法会消耗 CPU 资源,需要增加大量机器(https访问过程需要加解密)
最新回复(0)