- http协议:是一种超文本传输协议。
- 超文本:不仅仅是文字,还包括图像,音频,视频等
- 传输:有传输载体负责把二进制数据包由计算机终端传输到另一个终端的过程;通常我们把传输数据包的一方称为请求方,把接收到二进制数据包的一方称为应答方,请求方和应答方可以交换身份
- 网络协议:在网络中(包括互联网)传递和管理信息的而一些规范,计算机之间的相互通信需要共同遵守一定的规则
- 那到底什么是HTTP呢?
HTTP是一个在计算机世界里专门在两点之间传输文字,音频,视频等超文本数据的约定和规范
- 网络模型
英特网的协议栈:
五个部分组成:物理层,链路层,网络层,运输层和应用层
- 应用层 :
应用层是网络应用程序和网络协议存放的分层,因特网的应用层包括许多协议,例如我们学 web 离不开的 HTTP,电子邮件传送协议 SMTP、端系统文件上传协议 FTP、还有为我们进行域名解析的 DNS 协议。应用层协议分布在多个端系统上,一个端系统应用程序与另外一个端系统应用程序交换信息分组,我们把位于应用层的信息分组称为 报文(message)。 - 运输层:
因特网的运输层在应用程序断点之间传送应用程序报文,在这一层主要有两种传输协议 TCP和 UDP,利用这两者中的任何一个都能够传输报文,不过这两种协议有巨大的不同。
TCP 向它的应用程序提供了面向连接的服务,它能够控制并确认报文是否到达,并提供了拥塞机制来控制网络传输,因此当网络拥塞时,会抑制其传输速率。
UDP 协议向它的应用程序提供了无连接服务。它不具备可靠性的特征,没有流量控制,也没有拥塞控制。我们把运输层的分组称为 报文段(segment) - 网络层:
网络层负责将称为“数据报”的网络分层从一台主机移动到另一台主机。网络层一个非常重要的协议是IP协议。所有具有网络层的英特网组件都必须运行IP协议,IP协议是一种网际协议,除了IP协议外,网络层还包括一些其他的网际协议和路由选择协议,一般把网络层叫做IP层,由此可见IP协议的重要性。 - 链路层
为了将分组从一个节点(主机或者路由器)运输到另一个节点,网络层必须依靠链路层提供服务。链路层的例子包括以太网,wifi和电缆接入DOCSIS协议,因为数据从原目的地传送通常需要经过几条链路,一个数据包可能被沿途不同的链路层协议处理,我们把链路层的分组称为帧(frame) - 物理层
虽然链路层的作用是将帧从一个端系统运输到另一个端系统,而物理层的作用就是讲帧中的一个个比特从一个节点运输到另一个节点,物理层的协议仍然使用链路层协议,这些协议与实际的物理传输介质有关。
- 与HTTP有关的协议
- TCP/IP
TCP/IP 协议你一定听过,TCP/IP 我们一般称之为协议簇,什么意思呢?就是 TCP/IP 协议簇中不仅仅只有 TCP 协议和 IP 协议,它是一系列网络通信协议的统称。而其中最核心的两个协议就是 TCP / IP 协议,其他的还有 UDP、ICMP、ARP 等等,共同构成了一个复杂但有层次的协议栈。
TCP 协议的全称是 Transmission Control Protocol 的缩写,意思是传输控制协议,HTTP 使用 TCP 作为通信协议,这是因为 TCP 是一种可靠的协议,而可靠能保证数据不丢失。
IP 协议的全称是 Internet Protocol 的缩写,它主要解决的是通信双方寻址的问题。IP 协议使用 IP 地址 来标识互联网上的每一台计算机,可以把 IP 地址想象成为你手机的电话号码,你要与他人通话必须先要知道他人的手机号码,计算机网络中信息交换必须先要知道对方的 IP 地址。 - DNS
你有没有想过为什么你可以通过键入 www.google.com 就能够获取你想要的网站?我们上面说到,计算机网络中的每个端系统都有一个 IP 地址存在,而把 IP 地址转换为便于人类记忆的协议就是 DNS 协议。
DNS 的全称是域名系统(Domain Name System,缩写:DNS),它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
-HTTPS - HTTP 一般是明文传输,很容易被攻击者窃取重要信息,鉴于此,HTTPS 应运而生。HTTPS 的全称为 (Hyper Text Transfer Protocol over SecureSocket Layer),全称有点长,HTTPS 和 HTTP 有很大的不同在于 HTTPS 是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS = HTTP + SSL。
- 套接字
TCP用主机ip加上主机的端口号作为TCP连接的端点,这种端点叫做套接字(socket)或者插口。套接字用(IP地址:端口号)表示,区分不同应用程序进程间的网络通信和连接,主要有三个参数:通信的目的ip地址,使用的传输层协议(TCP或UDP)和使用的duankouz