HTTP 协议详解


前言

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,是基于 TCP/IP 通信协议来传递数据的(HTML 文件、图片文件、查询结果等)。本文介绍HTTP的相关知识。


一、认识HTTP

HTTP是一种超文本传输协议(Hypertext Transfer Protocol),由三部分组成:超文本、传输、协议,可以用下图表示它们之间的关系:

超文本传输协议

1、什么是超文本

互联网早期时,我们保存在本地的信息通常以文本即简单字符的形式存在,文本是一种计算机能够解析的二进制数据包。随着互联网的发展,需要在两台电脑间传输文字、图片、视频等,文本的语义就被扩大了,语义扩大后的文本就被称为超文本。

2、什么是传输

超文本被解析成为二进制数据包,由传输载体(如电话线、光缆)负责把数据包由计算机终端传输到另一台终端的过程称为传输。数据的请求方和应答方可以互相传输数据,关系如下图:

数据请求和应答

3、什么是协议

计算机之间的网络通信需要共同遵守一定的规范,这些规则称为网络协议。就像人类社会一样,每个人的行为是受到法律约束的。那么总结一下,什么是HTTP?HTTP是一个在计算机世界里专门在两点之间传输文字、图片、视频等超文本数据的约定和规范。

二、与HTTP有关的组件

1、网络模型

因特网的协议栈由五个部分组成:物理层、链路层、网络层、运输层和应用层。因特网的应用层包括许多协议,例如web离不开的HTTP、电子邮件传送协议SMTP、端系统文件上传协议FTP、解析域名的DNS协议,我们把应用层的信息分组称为报文;运输层主要有TCP和UDP两种协议,TCP提供面向连接的服务,具有可靠性,UDP提供无连接的服务,不具备可靠性,我们把运输层的分组称为报文段;网络层负责将称为数据报的网络分层从一台主机移动到另一台主机,IP协议是网络层非常重要的一个协议,是一种网际协议,网络层还包括其他网际协议和路由选择协议,一般把网络层称为IP层;网络层必须依靠链路层提供服务,链路层包括以太网、WiFi和电缆接入的DOCSIS协议等,数据传送过程可能经过几条链路,我们把链路层的分组称为帧;物理层的作用是将帧中的一个个比特从一个节点运输到另一个节点,物理层的协议仍然使用链路层协议,这些协议与实际的物理传输介质有关,例如以太网有很多物理层协议:关于双绞铜线、关于同轴电缆、关于光纤等等。

五层网络协议

2、OSI模型

ISO(国际标准化组织)提出来计算机网络应该按照7层来组织:

ISO网络模型

比5层模型多了表示层和会话层。表示层主要包括数据压缩和加密等,会话层提供数据交换的定界和同步功能。

3、浏览器

浏览器是使用HTTP协议的主要载体。在地址栏输入URL,浏览器会向DNS提供网址,完成URL到IP地址的映射。将请求发送到服务器,服务器返回HTML编码格式的数据给浏览器。

4、Web服务器

web服务器一般指网站服务器,即浏览器请求的应答方,目前主流的三个web服务器是Apache、Nginx和IIS。

5、CDN

CDN全称是Content Delivery Network,即内容分发网络,应用了HTTP协议里的缓存和代理技术,依靠部署在各地的边缘服务器,使用户就近获取所需内容。CDN的关键技术主要有内容存储和分发技术。

6、WAF

WAF(Web Application Firewall)是一种Web应用程序防护系统,是应用层面的防火墙,通常位于Web服务器之前,目前使用较多的一个开源项目是ModSecurity,它能够完全集成进Apache或Nginx。

7、WebService

WebService是一种Web应用程序,是一种跨编程语言和跨操作系统平台的远程调用技术,是由W3C定义的应用服务开发规范。

8、HTML

HTML称为超文本标记语言,包括一系列标签,将网络上的文档格式统一,由HTML命令组成描述性文本,可以说明文字、图形、声音、连接等。

9、Web页面构成

Web页面(Web page)也叫做文档,由一个个对象(Object)组成。一个对象只是一个文件。比如一个HTML文件、一个JPEG图形等等,多数Web页面含有一个HTML基本文件以及几个引用对象。

三、与HTTP有关的协议

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值