序言

Http和Https属于计算机网络范畴,但作为开发人员,不管是后台开发或是前台开发,都很有必要掌握它们。

在学习Http和Https的过程中,主要是参考了阮一峰老师的博客《阮一峰:HTTP 协议入门》,讲的很全面,并且通俗易懂,有兴趣的同学可以去学习学习。

这篇文章主要是按照自己的思路来讲解对Http和Https的理解。文章将会从以下几个方面介绍。

目录树:

  • 一、网络层结构
  • 二、Http协议
  • 三、Tcp三次握手
  • 四、Https协议/SSL协议
  • 五、SSL证书
  • 六、RSA加密和DH加密
  • 七、Http和Https对比

从目录结构可以看出,每个标题展开来说都是一个很大的主题。但本文旨在让各位同学对Http和Https相关知识有一个全面的认知,不会太过深入探讨各个主题,有兴趣的同学可以进行针对性研究。

一、网络层结构

网络结构有两种主流的分层方式:OSI七层模型和TCP/IP四层模型。

OSI七层模型和TCP/IP四层模型

OSI是指Open System Interconnect,意为开放式系统互联。

TCP/IP是指传输控制协议/网间协议,是目前世界上应用最广的协议。

两种模型区别

1、OSI采用七层模型,TCP/IP是四层模型

2、TCP/IP网络接口层没有真正的定义,只是概念性的描述。OSI把它分为2层,每一层功能详尽。

3、在协议开发之前,就有了OSI模型,所以OSI模型具有共通性,而TCP/IP是基于协议建立的模型,不适用于非TCP/IP的网络。

4、实际应用中,OSI模型是理论上的模型,没有成熟的产品;而TCP/IP已经成为国际标准。

二、HTTP协议

Http是基于TCP/IP协议的应用程序协议,不包括数据包的传输,主要规定了客户端和服务器的通信格式,默认使用80端口。

Http协议的发展历史

1、1991年发布Http/0.9版本,只有Get命令,且服务端直返HTML格式字符串,服务器响应完毕就关闭TCP连接。

2、1996年发布Http/1.0版本,优点:可以发送任何格式内容,包括文字、图像、视频、二进制。也丰富了命令Get,Post,Head。请求和响应的格式加入头信息。缺点:每个TCP连接只能发送一个请求,而新建TCP连接的成本很高,导致Http/1.0新能很差。

3、1997发布Http/1.1版本,完善了Http协议,直至20年后的今天仍是最流行的版本。

优点:a. 引入持久连接,TCP默认不关闭,可被多个请求复用,对于一个域名,多数浏览器允许同时建立6个持久连接。b. 引入管道机制,即在同一个TCP连接中,可以同时发送多个请求,不过服务器还是按顺序响应。c. 在头部加入Content-Length字段,一个TCP可以同时传送多个响应,所以就需要该字段来区分哪些内容属于哪个响应。d. 分块传输编码,对于耗时的动态操作,用流模式取代缓存模式,即产生一块数据,就发送一块数据。e. 增加了许多命令,头信息增加Host来指定服务器域名,可以访问一台服务器上的不同网站。

缺点:TCP连接中的响应有顺序,服务器处理完一个回应才能处理下一个回应,如果某个回应特别慢,后面的请求就会排队等着(对头堵塞)。

4、2015年发布Http/2版本,它有几个特性:二进制协议、多工、数据流、头信息压缩、服务器推送。

Http请求和响应格式

Request格式:

GET /barite/account/stock/groups HTTP/1.1QUARTZ-SESSION: MC4xMDQ0NjA3NTI0Mzc0MjAyNg.VPXuA8rxTghcZlRCfiAwZlAIdCADEVICE-TYPE: ANDROIDAPI-VERSION: 15Host: shitouji.bluestonehk.comConnection: Keep-AliveAccept-Encoding: gzipUser-Agent: okhttp/3.10.0

Response格式:

HTTP/1.1 200 OKServer: nginx/1.6.3Date: Mon, 15 Oct 2018 03:30:28 GMTContent-Type: application/json;charset=UTF-8Pragma: no-cacheCache-Control: no-cacheExpires: Thu, 01 Jan 1970 00:00:00 GMTContent-Encoding: gzipTransfer-Encoding: chunkedProxy-Connection: Keep-alive{"errno":0,"dialogInfo":null,"body":{"list":[{"flag":2,"group_id":1557,"group_name":"港股

android rtsp协议转http协议_Http协议和Https协议相关推荐

  1. http协议和https协议对应的端口号

    http协议和https协议对应的端口号为: http: 80/8080: https:443.

  2. HTTP协议和HTTPS协议的区别

    HTTP协议和HTTPS协议的区别 1.HTTP协议传输的数据都是未加密的,也就是明文的,使用HTTP协议传输隐私信息不安全: 2.HTTPS协议是由SSL(安全套接层,为网络通信提供安全及数据完整性 ...

  3. 什么是HTTP协议和HTTPS协议,以及两者的区别

    HTTP协议 超文本传输协议(Hyper Text Transfer Protocol),是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的 ...

  4. 1.前端计网篇之HTTP协议和HTTPS协议

    目录 1.HTTP协议 1)GET和POST请求的区别 2)POST和PUT请求的区别 3)常见的HTTP请求头和响应头 (1)HTTP Request Header常见的请求头: (2)HTTP R ...

  5. HTTP协议和HTTPS协议初探

    概况 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程. HTTP是 ...

  6. 用于地址解析的协议是服务器,tcp/ip协议和http协议

    TCP/IP 是一类协议系统,它是用于网络通讯的一套协议集合.浏览器 传统上来讲 TCP/IP 被认为是一个四层协议:应用层(telnet, ftp, http, smtp, dns等),传输层(tc ...

  7. 爬虫第二弹之http协议和https协议

    一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...

  8. 详解HTTP协议和HTTPS协议

    目录 一.HTTP协议 1.什么是HTTP 2.HTTP发展历史 3.HTTP请求和响应 4. 抓包的方式和工具Fiddler 1.开发者工具 2.Fiddler 二.请求和响应 1.请求和响应报文 ...

  9. 【4】TCP/IP协议族详解-ARP协议和RARP协议

    声明:本博客参考<TCP/IP协议详解卷一:协议> 1.概述 在以太网中一台主机将数据帧从一台主机发送到另一台主机时,是根据48bit的以太网地址确定目的接口的.设备驱动程序从不检查IP数 ...

最新文章

  1. 敏捷个人俱乐部2012年2月线下活动:活出我的最好生活
  2. 美国一大型数据中心将24h由光伏+储能供电
  3. IdentityServer4 之Client Credentials走起来
  4. Java,JavaFX的流畅设计风格拨动开关
  5. NYOJ 26 孪生素数问题
  6. 关于eclipse没有http jar的问题解释
  7. Java Jna调用Dll动态库函数读写IC卡
  8. 阿里 vs. 腾讯,谁的收购更有眼光?
  9. TOEFL 9个托福独立写作模板总结
  10. sql字符串转时间-日期区间查询
  11. oracle rebuild online,rebuild online 请慎用
  12. 哈密瓜水果的文案,水果哈密瓜文案高级感
  13. 【ACPC2013】马里奥赛车(01背包)
  14. centos7 vim查找_如何在 Vim/Vi 中快速查找和替换文本内容
  15. SMARTBI权限管理
  16. Linux小白详细笔记
  17. VVC代码阅读(2)compressGOP函数(2)
  18. 有用AI应用网站【​All Things AI: https://allthingsai.com/​】
  19. android 字体加粗_华为nova发布新字体LOGO,设计把我酷到了!
  20. 小米11发布:3999元的首款高端旗舰机,你买吗?

热门文章

  1. checkbox wpf 改变框的大小_WPF样式取决于复选框状态
  2. 在linux中添加字典,为 Ubuntu 的 Vim 添加英文字典
  3. Python之基础练习代码
  4. Django REST Framework API Guide 01
  5. 解决PHPstorm菜单栏搜索栏乱码的问题
  6. php_memcahed telnet远程操作方法
  7. atitit.跨语言执行cmd cli api的原理及兼容性设计草案
  8. sublime安装AngularJS插件
  9. 开发人员一定要加入收藏夹的网站(引用)
  10. 解决w3wp.exe内存占用问题[转载]