Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android 面试必备 - http 与 https 协议

Android 面试必备 - http 与 https 协议

作者头像
程序员徐公
发布于 2020-01-13 08:33:12
发布于 2020-01-13 08:33:12
8340
举报

前言

在讲解 http 与 https 之间的区别之前,我么先来看一下一个常见的面试问题。

一次完整的 http 协议请求过程是怎样的

该图片出自 博客

Http协议的主要特点

  1. 支持客户/服务器模式
  2. 简单快速:客户向服务端请求服务时,只需传送请求方式和路径。
  3. 灵活:允许传输任意类型的数据对象。由Content-Type加以标记。
  4. 无连接:每次响应一个请求,响应完成以后就断开连接。
  5. 无状态:服务器不保存浏览器的任何信息。每次提交的请求之间没有关联。

怎么理解HTTP协议是无状态的无连接的的协议?

非持续性和持续性

HTTP1.0默认非持续性;HTTP1.1默认持续性

持续性:浏览器和服务器建立TCP连接后,可以请求多个对象

非持续性:浏览器和服务器建立TCP连接后,只能请求一个对象

非流水线和流水线

类似于组成里面的流水操作

  • 流水线:不必等到收到服务器的回应就发送下一个报文。
  • 非流水线:发出一个报文,等到响应,再发下一个报文。类似TCP。

http 各个版本之间的区别

1.0 与 1.1

  • http1.0一次只能处理一个请求,不能同时收发数据
  • http1.1可以处理多个请求,能同时收发数据
  • http1.1增加可更多字段,如cache-control,keep-alive.

2.0

  • http 2.0采用二进制的格式传送数据,不再使用文本格式传送数据
  • http2.0对消息头采用hpack压缩算法,http1.x的版本消息头带有大量的冗余消息
  • http2.0 采用多路复用,即用一个tcp连接处理所有的请求,真正意义上做到了并发请求,流还支持优先级和流量控制(HTTP/1.x 虽然通过 pipeline也能并发请求,但是多个请求之间的响应会被阻塞的,所以 pipeline 至今也没有被普及应用,而 HTTP/2 做到了真正的并发请求。同时,流还支持优先级和流量控制。)
  • http2.0支持server push,服务端可以主动把css,jsp文件主动推送到客户端,不需要客户端解析HTML,再发送请求,当客户端需要的时候,它已经在客户端了。

POST和GET的区别

Post一般用于更新或者添加资源信息

Get一般用于查询操作,而且应该是安全和幂等的

Post更加安全

Get会把请求的信息放到URL的后面

Post传输量一般无大小限制

Get不能大于2KB

Post执行效率低

Get执行效率略高

为什么POST效率低,Get效率高

  • Get将参数拼成URL,放到header消息头里传递
  • Post直接以键值对的形式放到消息体中传递。
  • 但两者的效率差距很小很小

Https

HTTPS相当于HTTP的安全版本了,是在http的基础之上加上ssl(Secure Socket Layer)

  • 端口号是443
  • 是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议。

https在客户端(浏览器)与服务端(网站)传输加密的数据大概经历一下流程

  1. 客户端将自己的has算法和加密算法发给服务器
  2. 服务器接收到客户端发来的加密算法和has算法,取出自己的加密算法与has算法,并将自己的身份信息以证书的形式发送给客户端,该证书信息包括公钥,网站地址,预计颁发机构等
  3. 客户端收到服务器发来的证书(即公钥),开始验证证书的合法性,如果证书信任,则生成一串随机的字符串数字作为私钥,并将私钥(密文)用证书(服务器的公钥)进行加密,发送给服务器
  4. 服务器收到客户端发来的数据之后,通过服务器自己的私钥进行解密客户端发来的数据(客户端的私钥),(这样双方都拥有私钥)再进行hash检验,如果结果一致,则将客户端发来的字符串(第3个步骤发送过来的字符串)通过加密发送给客户端
  5. 客户端解密,如果一致的话,就使用之前客户端随机生成的字符串进行对称加密算法进行加密

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HTTP第二弹——HTTP前世今生大比较
Hello,小伙伴们,这两天有点忙,没有及时推送,那么闲话不多说,继续上次的HTTP话题,我们今天就从HTTP的前世今生入手,HTTP1.0?HTTP1.1?HTTP2.0?HTTPS?都有点啥子区别~~GET和POST又有啥区别呢?
萌兔IT
2019/07/25
3910
HTTP第二弹——HTTP前世今生大比较
Android技能树 — 网络小结(3)之HTTP/HTTPS
介于自己的网络方面知识烂的一塌糊涂,所以准备写相关网络的文章,但是考虑全部写在一篇太长了,所以分开写,希望大家能仔细看,最好可以指出我的错误,让我也能纠正。
青蛙要fly
2018/08/29
7490
Android技能树 — 网络小结(3)之HTTP/HTTPS
https 加密、http2.0、keep-alive
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少
Krry
2018/10/10
1.1K0
https 加密、http2.0、keep-alive
HTTP应知应会知识点复习手册(上)
上篇主要内容: 状态码、Http1.0/1.1/2.0、Https、GET和POST
蛮三刀酱
2019/03/26
5240
HTTP应知应会知识点复习手册(上)
计算机网络经典20问!
计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。
程序员大彬
2021/10/04
3460
计算机网络经典20问!
详解 HTTP2.0 及 HTTPS 协议
众所周知, HTTP协议是没有安全加密的协议,因为使用明文传输,所以使用HTTP协议的站点很容易会被窃听、篡改,劫持;而伴随着互联网的发展,网络上承载了越来越多也越来越重要的数据,金融,商业,支付,机密数据等等,数据安全的重要性越来越凸显,越来越多的网站通过启用HTTPS来保障web数据传输的安全性。此外,HTTP2.0 作为新一代的WEB协议,以重量级的新特性带来更好,性能更高的web服务体验。本文基于运维视角在阐述解析HTTP2.0协议相比较HTTP1.1的优点的同时讲述HTTPS协议的原理,并结合实际业务场景作为案例,目的是可以通过本文掌握HTTP2.0及HTTPS协议,了解原理,具备定位排查问题,调优的能力。
玖柒的小窝
2021/11/28
4.3K0
详解 HTTP2.0 及 HTTPS 协议
【大厂面试】腾讯面试,你真的懂HTTP吗?
大彬:嗯,HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。协议实际上就是双方约定好的格式,确保双方都能理解这种格式。
程序员大彬
2022/02/15
3850
http与https区别和联系
(1) 简单快速:客户端向服务端发送请求时,只是简单的填写请求路径和请求方法即可,然后就可以通过浏览器或其他方式将请求发送就行了
逍遥子大表哥
2021/12/17
1K0
HTTP和HTTPS
最近学习了一下HTTP和HTTPS相关的知识,由于内容比较多,这里总结了一下自己经常错的地方
全栈开发Dream
2021/05/30
5550
HTTP和HTTPS
HTTP、HTTPS协议详解
POST: 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件,数据被包含在请求报文的主体中
_咯噔_
2022/03/14
1.3K0
简单比较 http https http2
超文本传输​​协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议。它被设计用于Web浏览器和Web服务器之间的通信,但它也可以用于其他目的。 HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待它收到服务器端响应。 HTTP是无状态协议,意味着服务器不会在两个请求之间保留任何数据(状态)。虽然通常基于TCP / IP层,但可以在任何可靠的传输层上使用;也就是说,一个不会静默丢失消息的协议,如UDP。
西南_张家辉
2021/02/02
5260
【全网最全】面试高频知识点汇总 网络协议专题 (持续更新)
ICMP(Internet Control Message Protocol)协议,即Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
Steve Wang
2022/05/10
6120
【全网最全】面试高频知识点汇总 网络协议专题 (持续更新)
【面试题】HTTP知识点整理(附答案)
HTTP/1 的几种优化可以弃用: 合并文件、内联资源、雪碧图、域名分片对于 HTTP/2 来说是不必要的,使用 h2 尽可能将资源细粒化,文件分解地尽可能散,不用担心请求数多
木子星兮
2020/07/17
1.4K0
【面试题】HTTP知识点整理(附答案)
Android 面试必备 - 计算机网络基本知识(TCP,UDP,Http,https)
HTTP协议(超文本传输协议)和 UDP(用户数据包协议),TCP 协议(传输控制协议)
程序员徐公
2020/01/13
1.3K0
Android 面试必备 - 计算机网络基本知识(TCP,UDP,Http,https)
HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事
作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处还请指出。 1、web始祖HTTP ---- 全称:超文本传输协议(HyperText Transfer Protocol) 伴随着计算机网络和浏览器的诞生,HTTP1.0也随之而来,处于计算机网络中的应用层,HTTP是建立在TCP协议之上,所以HTTP协议的瓶颈及其优化技巧都是基于TCP协议本身的特性,例如
前朝楚水
2018/04/03
2.7K0
HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事
HTTP协议简述
超文本传输协议(HyperText Transfer Protocol,HTTP),是互联网应用最广泛的网络协议。最初的HTTP协议设计用于发送和接收HTML。经过发展演变成为客户端和服务器进行请求(Request)和响应(Response)的标准协议。要了解HTTP的运行过程,需要了解大体OSI模型
BUG弄潮儿
2021/02/03
4350
HTTP协议简述
面试系列之-http与https(JAVA基础)
GET:传递参数长度受限制,因为传递的参数是直接表示在地址栏中,而特定的浏览器和服务器对URL的长度是有限制的。因此GET请求不适合用来传递私密数据,也不太适合拿来传递大量数据;
用户4283147
2023/08/21
3020
面试系列之-http与https(JAVA基础)
HTTP协议原理
上篇文章我们以一个访问我的博客shiyujun.cn为例子描述了如何把一个域名转化为ip这个过程,那么拿到ip之后的交互过程是什么样的呢
Java学习录
2020/01/19
1.2K0
常见网络协议汇总(一)
“网络协议”是指为完成特定的任务而制定的一套规则。网络协议通常用来表示数据传输中一组用于实现一个或多个OT模型级别的规则或规范。在通信时,网络协议定义了在通信时如何进行通信。今天海翎光电的小编就汇总了常见的网络协议,来一起看看。我们先回顾一下计算机网络五层模型,如下图。
利又德智能感知
2023/01/31
1.5K0
常见网络协议汇总(一)
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
本文对于计算机面试、笔试过程中经常被问到的计算机网络类问题,做一个梳理总结,方便自己查看学习,同时也希望为其他找工作、学习的伙伴提供一个参考。
寻求出路的程序媛
2024/11/07
2230
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
相关推荐
HTTP第二弹——HTTP前世今生大比较
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档