美文网首页
Http基本概念

Http基本概念

作者: 深海时代 | 来源:发表于2019-03-08 10:31 被阅读0次

1.Http的物理结构

HTTP协议是 TCP/IP协议族的一个子集;

TCP/IP协议族

IP   PPPoE   TCP   DNS  UDP   FTP    ICMP   HTTP  SNMP   IEEE802.3   FDDI

TCP/IP的分层管理

应用层,传输层,网络层,数据链路层;

分层可以避免牵一发动全身的尴尬,只要规范接口数据,内部随便改动;

应用层

决定了向用户提供应用服务时的通信活动;

//向上面向用户与操作界面,向下面向传输层;

HTTP,DNS,FTP

传输层

提供处于网络连接下的两台计算机的数据传输;

//向上面向应用层,向下面向网络层;

TCP,UDP;

网络层

用来处理网络上流动的数据包,数据包是最小网络传输单位;

规定了通过什么样的网络路径传输到对方的计算机上;

在多条可行路径中选择一条;

向上面向传输层,向下面向数据链路层;

链路层

处理网络硬件部分,包括控制操作系统,硬件驱动,网卡,光纤等传输媒介;

传输流

传输流图

通过分层顺序与对方进行通信,发送端从应用层往下走,接收端从链路层往上走

传输结构

当我们发起http请求时,在传输层把应用层的数据分割,并在报文上打上标记及端口号,转发给网络层;网络层增加作为通信目的地的Mac地址后转发给链路层;链路层内进行数据的传输

发送端在层与层之间传递数据时,每一层都会打上属于该层的首部,接受端传递数据时会消去首部;

HTTP相关协议

IP协议

把数据包传送给对方用的协议,两个重要条件:IP地址,Mac地址;

IP地址指明了节点被分配的地址,Mac地址是网卡所属固定地址,IP可以与Mac地址进行配对,IP地址可以变换,Mac地址基本不会更改;

IP之间的通信依赖Mac地址,在网络上,通常是经过多台计算机和网络设备中转才能连接到对方,中转时,会利用下一站中转设备的Mac地址来搜索下一个中转目标,这时会采用ARP协议,这是一种地址解析协议,根据通信方IP反查Mac地址的协议;

在到达通信目标前的中转过程中,网络设备只能得到粗略的传输路线,这种机制叫路由选择.无论哪台网络设备都不能掌握互联网的细节;

传输过程

TCP协议

位于传输层,提供可靠的字节流服务;

字节流服务是指:为了方便传输,把大块数据分割成报文段为单位的数据包进行管理,可靠的传输服务是指,能够把数据可靠的传给对方.

TCP协议为了更容易传输大数据才把数据分割,而且TCP协议能够确认数据最终是否能送达对方;

采用三次握手的策略;

(一次完整的通信:接收方和响应方都发送了消息且都确认消息发送成功)三次握手的原因是让接收端确认消息发送成功最少需要三次通信

发送端发送一个带SYN标志的数据包给对方,接收端收到后回传一个带有SYN/ACK标志的数据包以示确认,最后发送端回传一个带有ACK标志的数据包代表握手结束.

若在握手的某个阶段中断,TCP协议会再次以相同的顺序发送相同的数据包;

为什么连接的时候是三次握手,关闭的时候却是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

三次握手

DNS服务

位于应用层,提供域名到IP之间的域名解析服务.

域名解析 完整流程

URI和URL

URI (Uniform Resource Identifier) :统一资源标识符

URL (Uniform Resource Locator) :统一资源定位符

Uniform  规定统一的格式

Resource  可以被标识的任何东西

Identifier  标识符

用来规定格式的协议有  http,ftp,mailto,telnet,file等;

URI是某一互联网资源的字符串标识;

URL表示资源的地点;

URL可以是其他方式实现的URI,但URL必须不能二义,URI一定不会二义;

//比方挂甲台村马大三,身份证就是他的URI,挂甲台村马大三就是他的URL,某一天他搬走了,URI还是原先的URI,URL就要换了;

URI格式

协议方案名:使用协议方案名获取访问资源时要指定协议类型,然后加一个冒号;

登录信息:可选;

服务器地址:可以说DNS可解析的域名,也可以是IPv4或IPv6地址;

端口号:忽略则使用默认;

带层次的文件路径:用服务器路径来指定服务器资源;

查询字符串:针对指定路径的资源,输入查询参数;

片段标识符:通常来划分子资源,并没有明确规定使用方法;

RFC

http协议技术标准文档叫RFC;

2.通信方法

请求组成: 方法(get ,post),URI,协议版本,请求头,请求体

响应组成:协议版本,状态码,原因短语,响应头,响应体

Http连接优化:每次连接都会断开->持久化连接->管线化连接(并发持久化)

Cookie技术:Http最初是不保存状态的,Cookie是一种让Http保存状态的方法,适用于网络连接中确认身份:客户端发送请求->服务器生成cookie并返回set-cookie字段->客户端保存cookie并在后续访问时使用.

代理:转发http请求的服务器是代理服务器,可以有多级,有的可以修改报文,有的可以缓存

网关:可以处理并返回http请求的服务器设备,但他的资源来源于源服务器,网关可以通过其他协议与源服务器连接。

隧道:远程加密连接。

HTTPS中SSL证书核心流程:

请求证书:服务器去CA机构请求证书,CA机构会下发证书,证书包含给申请者的公钥、签名(签名由公开信息MD5之后用CA机构的私钥加密)

证书验证:客户端用内置的CA证书里的公钥解密服务端下发证书的签名,之后对比服务器证书公开信息产生的MD5是否一致。

验证过后,双方协商加密算法并传递秘钥,加密为对称加密。

防止证书劫持通过签名实现,公钥解包签名后,用原消息+sign做hash比对,如果证书被劫持,那么劫持方是没有sign规则的。

相关文章

  • HTTP、HTTPS、HTTP版本的演进

    文章思路 HTTP基本概念: 基本概念 - HTTP是什么? 状态码 - HTTP常见的状态码有哪些? 首部字段 ...

  • 网络部分

    HTTP基本概念

  • HTTP基本概念

    HTTP方法 HTTP状态码 每条http响应报文返回都会携带一个状态码,是一个三位数的代码,告知客户端请求是否成...

  • HTTP基本概念

    HTTP HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它是一个应用...

  • HTTP和HTTPS的区别和联系

    (一)HTTP和HITTPS的基本概念 HTTP:超文本传输协议(HTTP,HyperText Transfer ...

  • HTTP和HTTPS的区别

    一、HTTP 和 HTTPS 的基本概念 HTTP:超文本传输协议(HTTP,HyperText Transfer...

  • Http和Https的区别(面试常考题)

    一、Http和Https的基本概念 Http:超文本传输协议(Http,HyperText Transfer Pr...

  • http和https

    一、Http和Https的基本概念Http:超文本传输协议(Http,HyperText Transfer Pro...

  • http与https

    一、Http和Https的基本概念Http:超文本传输协议(Http,HyperText Transfer Pro...

  • http与https的区别

    http和https的基本概念http的全称是Hypertext Transfer Protocol Vertio...

网友评论

      本文标题:Http基本概念

      本文链接:https://www.haomeiwen.com/subject/xxtjdftx.html