HTTP基础

HTTP:HyperText Transfer Protocol 超文本传输协议

HTTPS:HTTP基于SSL及其继任者TLS的安全协议

SMTP:Simple Mail Transfer Protocol

SSL:Secure Socket Layer

TLS:Transport Layer Security

TCP:Transmission Control Protocol

UDP:User Datagram Protocol

IP:Internet Protocol

TCP

是一种面向连接的、可靠的、基于字节流的传输层通信协议。当应用层向TCP层发送用于网间传输的用8位字节表示的数据流时,TCP把数据流分割成适当长度的报文段,之后TCP层把数据传给IP层,由它通过网络将包传送给接受实体的TCP层。

特性:

  • 有序性:分割的包有序号

  • 正确性:有checksum函数检验数据

  • 可靠性:超时重传、发送错误时重发

  • 可控性:采用滑动窗口协议和拥塞控制算法使传输速度达到合理值

UDP

是一种无连接的传输层协议,提供面向事务的简单的不可靠信息传送服务。UDP信息包标题只有8个字节,相对于TCP的20个字节信息包,开销小,所以更快速、适合轻量级

特性:
随发随收无需连接、非可靠性、无拥塞控制算法控制收发速率、报文既不拆分也不合并

TCP/IP 网络分层:

应用层(网络应用开发重点):Application Layer, 为用户的进程直接提供服务,负责

  • 发送、接收什么数据

  • 如何解释数据

  • 如何呈现数据

  • 如何加密数据

传输层(了解其原理):Transport Layer,为两个主机的不同端口之间的通信提供服务

  • port 是一种在同一主机内的不同通道之间进行寻址的方式

  • TCP提供可靠的有序传输

  • UDP提供非可靠的传输

网络层(了解其概念):Network Layer ,为两个主机之间提供通信服务

  • 定义了数据如何被封装为传送包

  • 定义了不同主机之间的寻址方式

  • 主要由IP组成,辅以ICMP、IGMP等路由协议

接口层(处理物理细节,软件开发无需了解):Link Layer,负责相邻物理设备之间的信息传输

概念:

IP地址:网络层概念,是互联网上的主机在网络上具有的逻辑地址,分为IPv4(如127.0.0.0)、IPv6

域名:Domain Name,应用层概念,便于人们记忆的服务器地址

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

URL:Uniform Resource Locator 统一资源定位符,是URI的子集

URN:Universal Resource Name 通用资源名称

URL的标准形式: [协议]://[主机]:[端口]/[路径]?[参数]

C/S架构:Client/Server

B/S架构:Browser/Server 使用web浏览器作为客户端的应用软件

B /S特点:

  • 便于部署、维护和升级

  • 跨平台、开放,对客户端要求低

  • 对安全性要求高

HTTP流程:C端建立TCP连接、发送HTTP请求、S端返回HTTP结果、C端关闭TCP连接

HTTP消息结构:request、response,分别有消息头和消息体

常用头字段和常用错误代码

1XX:等待信息

2XX:处理成功

3XX:重定向

4XX:客户端请求错误

5XX:服务端处理错误

常用头字段和代码.PNG

三次握手四次挥手

三握:客户端与服务器建立连接时
Client ——> 发送SYN包,进入SYN_SENT状态 ——> Server
Client <—— 发送SYN+ACK包,进入SYN_RECV状态 <—— Server
Client ——> 发送ACK包,双方进入Established状态 ——> Server
SYN:synchronous
ACK:acknowledgement
类比记忆:
现有C和S同学,C同学想与S同学做好朋友,先借了S同学一本SYN的书
S同学看完之后,还给C同学这本SYN的书,并同时借给C同学一本ACK的书
C同学看完后,也还给了S这本ACK的书,这时两人建立了友谊,相互存在连接关系

四挥:
Client ——> 发送一个FIN报文 ——> Server
Client <—— 发送ACK序号,同时通知自己相应的应用程序做清理工作 <—— Server
Client <—— 清理工作做完后,发送FIN报文 <—— Server
Client ——> 发送ACK序号,表示彻底释放 ——> Server
FIN:finished
类比记忆:
现有房东C与租客S,C发了一条FIN短信,说要交房租了
S工资推迟发了,先打个ACK欠条给C,说晚点给,并催公司财务快点发工资
工资发下来了,S回复FIN短信
C表示知晓,欠条返还给S,表示两清

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容