通过四个问题了解HTTP协议基础
很多人都知道学习和理解HTTP协议的重要性及必要性,但HTTP相关知识对计算机基础较差,尤其是我这种没有计算机基础的人来说更是晦涩难懂
乘着最近有空闲时间,开始恶补HTTP相关基础知识,下面请跟着我通过4个问题来学习HTTP协议基础
问题1:HTTP0.9,HTTP1.0,HTTP1.1,HTTP2.0有什么区别?
HTTP0.9
①:服务器只能回应HTML格式的字符串,不能回应别的格式
②:服务器发送完毕,就关闭TCP连接
③:只有一个命令GET
④:没有header等描述数据的信息
HTTP1.0
①:增加了 POST,DELETE,PUT等请求
②:增加了 status code(状态码,如 100,200,300,400,500)和 header(请求头)
③:任何格式的内容都可以发送(比如文字,图像、视频、二进制文件)
④:权限,缓存等
注:HTTP1.0的缺点是一个TCP连接只能发送一个请求和官方标准还未支持keep-alive(持久链接),只能用非官方标准声明Connection:keep-alive

HTTP1.1
①:keep-alive(持久链接)
②:增加了host命令
③:pipeline(管道机制,即一个TCP链接可以同时发送多个请求【前提在同一个域名】)
注:补充说明持久链接和管道机制


HTTP2.0
①:浏览器发送多个请求,服务器可以不按照顺序进行回应
②:头部信息压缩
③:服务器推送
注:按上面①②③顺序补充说明



详情见阮一峰大神写的HTTP基础这篇博客:http://www.ruanyifeng.com/blog/2016/08/http.html
问题2:在浏览器地址栏输入一个网址后按回车到底发生了什么?
该问题可简单概括为:浏览器地址栏输入一个网址(域名),敲回车后
DNS服务器会对域名进行解析,解析成IP地址后,通过这个IP地址去查找对应服务器并请求相应资源
这是很多小伙伴都知道的,但不知道的是在敲下回车后,在DNS解析域名为IP地址之前,浏览器还做了2件事
①:第一件事是redirectStart(开始跳转),因为浏览器可能记录了访问的地址已经永久跳转成一个新的地址,
此时浏览器需要判断是否需要开始跳转,跳转到哪里;所以有时访问某个网站会看到状态码301( 永久性转移到其它地方)
补:http状态码301和302详解及区别——辛酸的探索之路:http://blog.csdn.net/grandPang/article/details/47448395
问题3:http如何建立三次握手?
这篇博客讲的很详细,不再赘述:https://www.imooc.com/article/71293
问题4:为什么HTTPS比HTTP更安全?(下面截图前者为HTTP的缺点,后者为HTTPS与之对应的优点)


补:阮一峰大神HTTPS博客合集:http://www.ruanyifeng.com/blog/2016/08/migrate-from-http-to-https.html
通过四个问题了解HTTP协议基础的更多相关文章
- TCP/IP协议基础(转)
转自 http://www.chinaunix.net 作者:Bernardus160 发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...
- HTTP协议基础与实验
一. HTTP协议(Hypetext Transfer Protoacal,超文本传输协议) HTTP协议规定了Web基本的运作过程,以及Web服务器之间的通信细节. Http协议采用客户端/服务器端 ...
- udp协议基础(转自疯狂java讲义)
第17章 网络编程 17.4 基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发 ...
- 接口测试培训:HTTP协议基础
接口测试培训:HTTP协议基础 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展. ...
- 【RL-TCPnet网络教程】第41章 HTTP超文本传输协议基础知识
第41章 HTTP超文本传输协议基础知识 本章节为大家讲解HTTP(HyperText Transfer Protocol,超文本传输协议),从本章节开始,正式进入嵌入式Web的设计和学习. ...
- 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识
第25章 DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...
- 【RL-TCPnet网络教程】第16章 UDP用户数据报协议基础知识
第16章 UDP用户数据报协议基础知识 本章节为大家讲解UDP(User Datagram Protocol,用户数据报协议),需要大家对UDP有个基础的认识,方便后面章节UDP实战操作. ...
- Linux学习(1)- TCP/IP网络协议基础
Linux学习(1)- TCP/IP网络协议基础 一.TCP/IP 简介 学习内容 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输 ...
- HTTP/TCP协议基础
HTTP协议 基本概念 HTTP协议(超文本传输协议 HyperText Transfer Protocol):是用于从WWW服务器传输超文本到本地浏览器的传送协议.它不仅保证计算机正确快速地传输超文 ...
随机推荐
- C变量和常量
变量定义 变量定义就是告诉编译器如何创建变量的储存,以及在何处创建变量的储存,变量定义指定了一个数据类型,并包含一个或者多个变量的列表: type variable_list //如: int i; ...
- 英语rhodita铑金RHODITA单词
铑金RHODITA,铑属铂系元素.铂系元素几乎完全成单质状态存在,高度分散在各种矿石中,例如原铂矿.硫化镍铜矿.磁铁矿等.铂系元素几乎无例外地共同存在,形成天然合金.在含铂系元素矿石中,通常以铂为主要 ...
- maven 学习---使用Maven创建Web应用程序项目
在本教程中,我们将演示如何使用 Maven 创建一个 Java Web 项目(Spring MVC). 用到的技术/工具: Maven 3.3.3 Eclipse 4.3 JDK 8 Spring 4 ...
- poi操作Word创建超链接
项目引入poi: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</ ...
- Oracle使用命令行登录提示ERROR: ORA-01017: invalid username/password; logon denied
刚在Windows上面安装好Oracle 10g,刚开始使用PLSQLDevelop软件登录提示 not logged on ,然后使用命令行登录提示 ERROR: ORA-01017: inval ...
- 关与 @EnableConfigurationProperties 注解
@EnableConfigurationProperties注解的作用是: 让使用 @ConfigurationProperties 注解的类生效. 当@EnableConfigurationProp ...
- 为何JAVAWEB绝对路径访问不了图片
为何JAVAWEB绝对路径访问不了图片?其实这涉及到两个原因 1:浏览器类型不同: 五大主流浏览器内核有所不同,能够支持的功能不一样:如谷歌浏览器就不能查看绝对路径 2:涉及到保护隐私安全: (谷歌浏 ...
- 第14节_BLE协议ATT层
下面这个图是BLE协议各层跟医院的各个科室的类比图: 跟医院类比,ATT层就是化验室,通过它可以得到各种检查结果──属性.这些检查结果之间有什么联系,它们组合起来体现了什么,化验室是不知道的,这些得由 ...
- 201871010136-赵艳强《面向对象程序设计(Java)》第八周学习总结
201871010136-赵艳强<面向对象程序设计(Java)>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...
- Java8——Optional
/* * 一.Optional 容器类:用于尽量避免空指针异常 * Optional.of(T t) : 创建一个 Optional 实例 * Optional.empty() : 创建一个空的 Op ...