关于HTTP协议

前言:本文仅用于笔记记录,原文:https://juejin.cn/post/6844904045572800525 程序员cxuan

1、http协议:超文本传输协议。

超文本:包括并除了文本之外的媒体,如图片、声音、视频等

传输:由传输载体负责把二进制数据包由计算机终端传输到另一个终端的过程

协议:发送端与接收端之间数据传输的约定。

总结:HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范

  • 网络模型

因特网的协议栈由五个部分组成:物理层、链路层、网络层、运输层(也叫传输层)和应用层

应用层:HTTP、电子邮件传送协议 SMTP、端系统文件上传协议 FTP、域名解析的 DNS 协议。。。

运输层:TCP、UDP

TCP 向它的应用程序提供了面向连接的服务,它能够控制并确认报文是否到达,并提供了拥塞机制来控制网络传输,因此当网络拥塞时,会抑制其传输速率【可靠协议】

UDP 协议向它的应用程序提供了无连接服务。它不具备可靠性的特征,没有流量控制,也没有拥塞控制。我们把运输层的分组称为 报文段不可靠协议】

网络层:因特网的网络层负责将称为数据报的网络分层从一台主机移动到另一台主机,IP协议的作用:把各种数据包传送给对方。

注意:IP地址和IP不是同一个概念,IP是指IP协议,IP地址指明了节点被分配到的地址。

链路层:将分组从一个节点(主机或路由器)运输到另一个节点。以太网、WIFI等协议。网络层必须依靠链路层提供服务。链路层的分组称为

物理层:链路层的作用是将帧从一个端系统运输到另一个端系统,而物理层的作用是将帧中的一个个 比特 从一个节点运输到另一个节点。

  • ISO模型

相比于网络模型,ISO模型在应用层和运输层之间多了表示层、会话层

表示层主要包括数据压缩和数据加密以及数据描述,数据描述使得应用程序不必担心计算机内部存储格式的问题,而会话层提供了数据交换的定界和同步功能,包括建立检查点和恢复方案。

2、浏览器发起请求和接收响应的过程:

地址栏输入URL(即网址),浏览器会向DNS(域名服务器)提供网址,由它来完成 URL 到 IP 地址的映射。然后将请求你的请求提交给具体的服务器,在由服务器返回我们要的结果(以HTML编码格式返回给浏览器),浏览器执行HTML编码,将结果显示在浏览器的正文。

例子:

假设访问的 URL 地址为 http://www.someSchool.edu/someDepartment/home.index,当我们输入网址并点击回车时,浏览器内部会进行如下操作

  • DNS服务器会首先进行域名的映射,找到访问www.someSchool.edu所在的地址,然后HTTP 客户端进程在 80 端口发起一个到服务器 www.someSchool.edu 的 TCP 连接(80 端口是 HTTP 的默认端口)。在客户和服务器进程中都会有一个套接字与其相连。

  • HTTP 客户端通过它的套接字向服务器发送一个 HTTP 请求报文。该报文中包含了路径 someDepartment/home.index 的资源,我们后面会详细讨论 HTTP 请求报文。

  • HTTP 服务器通过它的套接字接受该报文,进行请求的解析工作,并从其存储器(RAM 或磁盘)中检索出对象 www.someSchool.edu/someDepartment/home.index,然后把检索出来的对象进行封装,封装到 HTTP 响应报文中,并通过套接字向客户进行发送。

  • HTTP 服务器随即通知 TCP 断开 TCP 连接,实际上是需要等到客户接受完响应报文后才会断开 TCP 连接。

  • HTTP 客户端接受完响应报文后,TCP 连接会关闭。HTTP 客户端从响应中提取出报文中是一个 HTML 响应文件,并检查该 HTML 文件,然后循环检查报文中其他内部对象。

  • 检查完成后,HTTP 客户端会把对应的资源通过显示器呈现给用户。

至此,键入网址再按下回车的全过程就结束了。上述过程描述的是一种简单的请求-响应全过程,真实的请求-响应情况可能要比上面描述的过程复杂很多。

目前最主流的三个Web服务器是Apache、 Nginx 、IIS

CDN:内容分发网络(目的:提高用户访问速度,减低网络阻塞)

它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。CDN 是构建在现有网络基础之上的网络,它依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

WAF: 是一种 Web 应用程序防护系统(Web Application Firewall,简称 WAF),它是一种通过执行一系列针对HTTP / HTTPS的安全策略来专门为Web应用提供保护的一款产品,它是应用层面的防火墙,专门检测 HTTP 流量,是防护 Web 应用的安全技术。WAF 通常位于 Web 服务器之前,可以阻止如 SQL 注入、跨站脚本等攻击,目前应用较多的一个开源项目是 ModSecurity,它能够完全集成进 Apache 或 Nginx。

3、与HTTP协议相关的协议

TCP/IP 协议族,是它是一系列网络通信协议的统称,不只是包含TCP/IP协议,还包括UDP、ICMP、ARP。

TCP:传输控制协议,是一种可靠协议,能保证数据不丢失。

IP:主要解决的是通信双方寻址的问题。将IP地址作为互联网上的每一台计算机的唯一标识。

DNS:IP地址是一串数字,不便于记忆,因此有了域名的概念。但是计算机更擅长处理数字,让计算机处理名称不太现实,因此DNS应运而生。DNS是将域名和IP地址互相映射的一个分布式数据库。DNS提供可以实现通过域名查询IP地址,或者通过IP地址反向查询域名的服务。

URI/URL

我们通常可以通过在浏览器地址栏输入网址来实现网站的访问,那么这个地址是有要求的,即,要符合URI的规范。

URI:统一资源标识符,使用它就能够唯一地标记互联网上资源。

URL:统一资源定位符,也就是我们俗称的网址,它实际上是 URI 的一个子集。

HTTPS:HTTP 一般是明文传输,很容易被攻击者窃取重要信息。HTTPS 和 HTTP 有很大的不同在于 HTTPS 是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS = HTTP + SSL

原文:https://juejin.cn/post/6844904045572800525 程序员cxuan

文章很棒,学到很多东西,感谢作者!

持续更新。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值