通过四个问题了解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服务器传输超文本到本地浏览器的传送协议.它不仅保证计算机正确快速地传输超文 ...
随机推荐
- 用maven对ssm进行整合
网上有很多ssm整合的教程,这里给像我这样的初学的新手提供一个整合方法,同时也记录一下自己的学习进度. 同时推荐观看相关视频 https://www.bilibili.com/video/av536 ...
- .NET开发框架(六)-架构设计之IIS负载均衡(视频)
前面有关注我们公众号文章的朋友应该都知道,我们的分布式应用服务可以通过Ocelot网关进行负载均衡,这种方式属于应用级别的实现. 而今天我们给大家介绍的是平台级别的实现,并且我们首次使用视频方式进行讲 ...
- 智能家居-3.基于esp8266的语音控制系统(软件篇)
智能家居-1.基于esp8266的语音控制系统(开篇) 智能家居-2.基于esp8266的语音控制系统(硬件篇) 智能家居-3.基于esp8266的语音控制系统(软件篇) 赞赏支持 QQ:505645 ...
- React + Ts 实现三子棋小游戏
在这里阅读效果更佳 还记得当年和同桌在草稿纸上下三子棋的时光吗 今天我们就用代码来重温一下年少(假设你有react基础,没有也行,只要你会三大框架的任意一种,上手react不难) 游戏规则 双方各执一 ...
- jquery源码问题
最近公司升级jquery版本后,原来项目中复选框的attr的使用失效,在查看了jquery的内容的时候发现版本更新,复选框的attr的使用替换成了prop,所以使用的时候出现了问题,但是涉及到的文件太 ...
- vue-router简易的实现原理
class VueRouter { constructor(options) { this.$options = options; this.routeMap = {}; // 路由响应式 this. ...
- CTF必备技能丨Linux Pwn入门教程——栈溢出基础
这是一套Linux Pwn入门教程系列,作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的一些题目和文章整理出一份相对完整的Linux Pwn教程. 课程回顾>>Linux ...
- shell脚本按当前日期输出日志
shell脚本基本技能是设置变量,输出信息.如下: sh脚本输出到控制台 将以上脚本保存到test.sh脚本文件中,并赋予可执行权限:sudo chmod +x test.sh 执行脚本:bash t ...
- odoo10学习笔记十五:仪表板
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189353.html 仪表盘可以通过外部ID引用其他视图文件的内容,整合到一个界面进行显示. 一:建立仪表 ...
- 全球唯一标识符 System.Guid.NewGuid().ToString()
System.Guid.NewGuid().ToString(); //ToString() 为 null 或空字符串 (""),则使用"D". 结果:8209 ...