HTTP/HTTPS相关介绍

#Request 请求数据包

#Proxy 代理服务器

#Response 返回数据包

HTTP/HTTPS具体区别?

HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 HTTPS (Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。 HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。 HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

HTTP简要通信过程

建立链接 —> 发送请求数据包 —> 返回响应数据包 —> 关闭连接

1.浏览器建立与web服务器之间的连接。

2.浏览器将请求数据打包(生成请求数据包)并发送到web服务器。

3.web服务器将处理结果打包(生成响应数据包)并发送给浏览器。

4.web服务器关闭连接。

http 和 https 的通信过程及区别

一、两者的区别

  • 端口:http 端口号是80,https 端口号是443
  • 传输协议:http 是超文本传输协议,属于明文传输;https 是安全的超文本传输协议,是经过 SSL 加密后的传输协议
  • 安全性:https 使用了 TLS/SSL 加密,比 http 更加的安全
  • 证书:https 需要申请 ca 证书

二、HTTP的通信过程

  • **理解:**作为标准的 C/S 模型,http 协议总是由客户端发起,服务端进行响应。
  • DNS 解析,域名系统 DNS 将域名解析成IP地址
  • 建立 TCP 连接,进行 TCP 的三次握手
  • 客户端发送请求
  • 服务端响应客户端,向客户端发送数据
  • 通信完成,TCP 连接关闭

三、HTTPS的通信过程

  • 理解:https 通信是建立在 ssl 连接层之上的请求和响应,客户端将加密组件发送到服务端,服务端进行匹配后将数字证书等信息发送到客户端,客户端进行证书验证,验证通过后使用非对称加密对数据的密钥进行协商,协商后得到对称的加密密钥,然后使用对称算法进行 TCP 链接,然后与客户端进行三次握手后,进行数据传输,传输完成后,四次挥手,断开链接,通信结束。
  • 客户端和服务端通过 TCP 建立连接,并发送 https 请求。
  • 服务端响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司
  • 客户端收到服务端的数字证书之后,会验证数字证书的合法性。
  • 如果公钥合格,那么客户端会生成 client key,一个用于进行对称加密的密钥,并用服务端的公钥对客户端密钥进行非对称加密。
  • 客户端会再次发起请求,将加密之后的客户端密钥发送给服务端。
  • 服务端接收密文后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。
  • 客户端收到密文,并使用客户端秘钥进行解密,获取数据。

在这里插入图片描述

Request请求数据包数据格式

1.请求行:请求类型/请求资源路径、协议的版本和类型

请求行由三个标记组成:请求方法、请求URL和HTTP版本,它们用空格分开。

例如: GET / index.html HTTP/1.1

HTTP 规划定义了8种可能的请求方法:

GET:检索URL中标识资源的一个简单请求。

HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档。

POST:服务器接收被写入客户端输出流中的数据的请求。

PUT:服务器保存请求数据作为指定URL新内容的请求。

DELETE:服务器删除URL中命令的资源的请求。

OPTIONS:关于服务器支持的请求方法信息的请求。

TRACE:web服务器反馈HTTP请求和其头标的请求。

CONNECT:已文档化,但当前未实现的一个方法,预留做隧道处理。

2.请求头:一些键值对,浏览器与web服务器之间都可以发送,特定的某种含义

HOST:主机或域名地址。

Accept:指浏览器或其他客户可以接受的MIME文件格式。Servlet可以根据它判断并返回适当的文件格式。

User-Agent:是客户浏览器名称。

Host:对应网址URL中的web名称和端口号。

Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us,指英语。

connection:用来告诉服务器是否可以维持固定的HTTP连接。http是无连接的,HTP/1.1使用Keep-Alive为默认值,这样当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接。

Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能。

Referer:表明产生请求的网页URL。如比从网页/icconcept/index.jsp中点击一个链接到网页/icwork/search,再向服务器发送的GET/icwork/search中的请求中,Referer是http://hostname:8080/icconcept/index.jsp。这个属性可以用来跟踪web请求是从什么网站来的。

Content-Type:用来表名request的内容类型。可以用HttpServeletRequest的getContentType()方法取得。

Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8859-1。

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到web响应之后先解码,然后再检查文件格式。

3.空行:请求头与请求体之间用一个空行隔开

最后一个请求头标之后是空行,发送回车符和退行,通知服务器以下不再有头标。

4.请求体:要发送的数据(一般post提交会使用)

使用POST传送,最常使用的是Content-Type和Content-Length头标

Response返回数据包数据格式

1.状态行:协议版本、数字形式的状态代码和状态描述,各元素之间以空格分隔

HTTP响应码

1xx:信息,请求收到,继续处理

2xx:成功,行为被成功的接收、理解和采纳

3xx:重定向,为了完成请求,必须进一步执行的动作

4xx:客户端错误

5xx:服务器错误

200:存在文件

403:存在文件夹

3xx:均可能存在

404:不存在文件及文件夹

500:均可能存在

2.响应头标:包含服务器类型、日期、长度、内容类型等

像请求头标一样,它们指出服务器的功能,标识出响应数据的细节。

3.空行:响应头与响应体之间用空行隔开

最后一个响应头标之后是一个空行,发送回车符和退行,表面服务器一下不再有头标。

4.响应数据:浏览器会将实体内容中额数据取出来,生成相应的页面

HTML文档和图像等,也就是HTML本身。

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值