学习《图解HTTP》有感

HTTP协议的出现主要是为了解决文本传输的难题(大家互相共享文件没有一个规范),最初的设计理念是:借助多文档之间的关联形成超文本,成为相互参阅的WWW(万维网)

计算机和网络设备要通信,如何探测设备,怎么开始通信,什么语言,什么时候结束通信,一系列都要有规范,统称为TCP/IP协议族(包含HTTP,TCP,IP,UDP,DNS)

与互联网相关的协议加起来统称为TCP/IP,也有其他两种定义,这里不赘述。

TCP/IP协议按层次分为应用层,传输层,网络层,数据链路层

分层的好处:1.每层有修改只修改某一层 2.分开设计,设计简单

应用层:决定了向用户提供应用服务时通信的活动(FTP,DNS),HTTP也处于这一层

传输层:传输层对上层应用层,提供处于网络连接中的两台计算机进行数据传输(TCP,UDP)

网络层:处理网络上流动的数据包,规定了数据包通过哪条路径传给对方(IP协议:把各种数据包传送给对方,需要知道IP地址和MAC地址)

链路层:处理连接的硬件部分,通俗理解为服务于ip包的交通工具

访问一个页面的过程:客户端在应用层发出请求,之后传输层把这个请求分割成多个报文,各报文打上序号,到网络层加上mac地址,发给链路层,链路层传给对面,对面一层一层拆包删首部东西。

ARP协议:根据对方的IP地址反查出对应的MAC地址

发送信息像寄快递,没法知道完整的动向,一直中转。

TCP协议:将信息拆分为报文段(拆分就是可靠的字节流服务),并确定对方一定收到。确保方法:三次握手

发送端发带有syn标志的包,接收端收到之后发带syn/ack标志的包,发送端发带有ack标志的包,任意阶段收不到都以相同顺序再发包。

DNS:域名到IP之间的解析服务

请求报文:请求方法,uri,协议版本,首部字段,内容实体

响应报文,协议版本,状态码,原因短语,日期,首部字段,主体

HTTP是 不保存状态的实体,有时需要保存状态,比如登录京东之后买东西,这就有了cookie

持续连接:以前传输的数据较少,每次传输完一个东西就要TCP连接一次,比如发送一个文件和图片,都会分别建立TCP连接,增加开销,因此持续连接就很有必要。

持续连接(keep-alive)特点:只要任一端没有明确提出断开连接,则保持TCP连接状态。

持续连接使管线化成为可能,不用等待也可以发下一个请求,做到同时并行发送多个请求。

一个web服务器上搭建多个web站点,访问这个服务器上的两个网站时,DNS解析之后IP一样,因此发送时要带具体的uri信息

 

代理:接受客户端请求,转发给服务端。

每次代理之后都会在加入代理服务器的Via首部字段再转发

网关:接受客户端请求信息,像源服务器一样处理。网关能使通信道路上的服务器提供非HTTP协议服务

持有资源实体的服务器称为源服务器

隧道:在相隔远的客户端和服务器之间进行中转,并保持双方通信连接的程序。主要是确保客户端和服务器安全通信

使用代理服务器的原因:利用缓存减少网络宽带的流量,内部对特定网站的访问控制。

代理主要按两种方法分类:是否利用缓存,是否会修改报文

HTTPS:HTTP+SSL,SSL:第三方机构颁布的证书,确定对方身份

HTTPS=HTTP+加密+认证+完整性保护

共享密钥只有一个公钥,是对称加密。公开密钥采用非对称加密,发送者用公开的公钥加密,接收者用私有密钥解密。

HTTPS采用两个机制混合的方法,结合效率和安全性,在交换密钥环节使用公开密钥加密方法,之后的建立通信交换报文阶段则使用共享密钥加密方式。

但是,公开密钥加密还是有一定问题的,比如建立公开密钥通信时,原有的公开密钥被攻击者替换掉了,无法证明收到的公开密钥就是原先发送者发的。

因此引入了数字证书

客户端也有证书,但没法让所有用户统一搞,所以有的特殊业务才会引用,例如网银的终端,有客户端证书。有个问题是这只能证明客户端的存在,而无法证明是本人的使用。

 

HTTPS慢主要是SSL,SSL两个方面慢,一种是通信慢,因为加入了SSL通信,另一方面是因为加密处理,cpu负载大

很多不用https的原因,加密消耗资源,证书要钱。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql解决select * from 表名 (where + 约束条件为空)

mysql解决select * from 表名 (where 约束条件为空),示例如下: SELECT * from tableName WHERE name is NULL; 从 tableName 表中查询 name 字段为空的记录。转载于:https://www.cnblogs.com/zrmw/p/9887655.html

通信人工智能的下一个十年(上)

来源:电信科学欧阳晔1, 王立磊1, 杨爱东1, 马利克萨哈2, 大卫贝兰格3,4, 高同庆5, 韦乐平6, 张亚勤71 亚信科技(中国)有限公司,北京 1001932 美国威瑞森电信公司,美国 纽约 100363 美国电话电报公司,美国 得…

[Swift]LeetCode19. 删除链表的倒数第N个节点 | Remove Nth Node From End of List

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址&a…

CAS

cas:Compare and Swap,即比较再交换。 对CAS的理解,CAS是一种无锁算法,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B&…

大脑使用交叉存储,来区分现在和过去

来源:混沌巡洋舰在每一个清醒的时刻,人类和其他动物必须在我们对过去的记忆和对现在的意识两者中保持平衡。我们必须吸收关于周围世界的新的感官信息,同时保持对早期观察或事件的短期记忆。我们理解周围环境、学习、行动和思考的能力都依赖于…

CONTINUE...? ZOJ - 4033

CONTINUE...? ZOJ - 4033 题解:先计算一下总数sum是否是偶数,如果不是则不能分出来,如果是则从后面开始分,先把人分到1、3组,分完sum / 2这些人,如果恰好能够分成零,那么剩下前面的都分到2、4组…

对象在内存中的存储布局

对象头包含: markword(和锁相关的信息) 8字节 class pointer(说明对象属于哪个类),jvm指针八字节,但是默认压缩,所有4个字节 对象体包含: instance word实例数据(例如int,这就占四个字节,l…

用研究新范式破解生命科学难题

来源:中国科学报 作者:丛斌(中国工程院士)采访整理:张思玮(本报记者)当今,世界科技正处于重大变革前夕。各领域科学家们一直积极地探索物质本质、宇宙本源、生命本质,并迫…

synchronized与volatile

synchronized实现过程: 1.Java代码:synchronized 2.字节码层级:monitorenter,monitorexit 3.执行过程中自动升级(偏向->自旋->重量级锁) 4.cpu汇编层级:lock comxchg 上图为双核cpu的内部构造&am…

redis 字符串数据(string)

Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下: 语法 redis 127.0.0.1:6379> COMMAND KEY_NAME 实例 redis 127.0.0.1:6379> SET runoobkey redis OK redis 127.0.0.1:6379> GET runoobkey "redis" 在以上实例…

AI 技术与人类主体想象 ——基于人工直觉在线讨论的研究

来源: 人工智能哲学探索作者:雅克布约翰森(英国圣玛丽大学) 王鑫(辽宁大学)一、引言:AI、神经形态硬件、人工直觉AI 在媒体上的讨论越来越多,很多广为流行的专业网站上的相关探讨涵盖了 AI 发展的最新趋势和…

Java四种引用

强引用:没有使用时调用System.gc()会回收 eg:M m new M(); mnull;System.gc(); 软引用:内存不够时就回收 作用:一般使用在缓存时,比如把一些图片存储,内存不够时就自动回收 弱引用: 垃圾回…

js 控制页面跳转的5种方法

js 控制页面跳转的5种方法 编程式导航: 点击跳转路由,称编程式导航,用js编写代码跳转。 History是bom中的History.back是回退一页Histiory.go(1)前进一页History.go(-1)后退一页HandleClick(){Console.log(this.props.history);}This.props.h…

永动机与热力学定律

来源:力学酒吧 撰文:张伟伟热力学三大定律分别为能量守恒、熵增定律和绝对零度无法到达,人们对热力学定律的认识也是纠正永动机思想的过程,是人类“美好思想”不断“碰壁”的过程,这些“碰壁”对于个人成长有着深刻的启…

浅析ThreadLocal

线程本地变量 每个线程独立拥有,线程存在,ThreadLocal就一直存在。 使用场景:spring 事务 里面有m方法,m调用了m1,m2,比如m1,m2都去访问数据库 如果分别建立两个数据库连接,事务…

T-SQL删除存储过程

使用T-SQL脚本删除存储过程 语法: --声明数据库引用use 数据库名称;go --判断是否存在存储过程,如果存在则删除if exists(select * from sys.procedures where name存储过程名称)drop { proc | procedure } [架构名][.][存储过程名称];go 示例&#xff1…

工业机器人技术全解析,值得收藏!

来源:先进制造业一、工业机器人的发展背景1920年,捷克剧作家卡里洛奇别克在其科幻剧本《罗萨姆万能机器人制造公司》(Rossums Universal Robots)首次使用了ROBOT这个名词,之后便成为机器人的代名词。1938年3月&#xf…

Leetcode--781.森林中的兔子

森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 示例: 输入: answers [1, 1, 2] 输出: 5 解释: 两只回答了 "1&q…

JQuery 数组按指定长度分组

JQuery方法// 将data每3个一组进行分组var data [法国,澳大利亚,智利,新西兰,西班牙,加拿大,阿根廷,美国,0,国产,波多黎各,英国,比利时,德国,意大利,意大利,]; var result []; for(var i0,lendata.length;i<len;i3){result.push(data.slice(i,i3)); }lodash方法var data …

中科创星米磊:从五个方向筛选“硬科技”企业

来源&#xff1a;经济日报-中国经济网记者/梁 睿米磊建议创投和保荐机构从五个方面入手筛选“硬科技”企业&#xff1a;“围绕落实国家战略规划确定的科技发展方向或承担具体攻关任务的企业&#xff1b;拥有关键核心技术和先进技术的企业&#xff1b;科技创新和转化应用能力突出…