标签:完成 部分 拥塞 ref 虚拟 统一 客户 first 网上
TCP/IP不是一个协议,而是一个协议族模型,里面包括4个层:应用层,传输层,网络层与数据层(被视为OSI七层模型的简化版)
HTTP,TCP,IP在网络中分属不同的层。
应用层:HTTP,FTP,POP,SMTP等就属于这个层。应用层主要主要向用户提供一组应用程序,比如邮件发送,远程登录等
传输层:TCP和UDP属于这个层,该层用于提供两个节点间的数据传输。
无连接的优点:速度快(没有阻塞控制,也省了许多保证可靠传输的机制);可以实现多对一,一对多,多对多(面向连接的需要多个独立连接才能做到);且无连接是实现面向连接的基础(IP是无连接的,它是构建TCP/IP的基础)
网络层:IP属于这个层。网络层包括地址管理与路由选择,它决定数据通过什么路径来到达另一端。在这层数据被称为数据包。
网络接口层:通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
三次握手目的是建立可靠的连接。这三次是确认双方都能正确发送并接收对方信息的最小次数。
第一次握手:客户端发送带有SYN标志的数据包到服务端,服务端可以由此确认自己正常接收了数据,也可以确认客户端正确发送了数据。但客户端无法确认任何事。
第二次握手,服务端发送带有SYN/ACK标志的数据包到客户端,证明了自己发送数据功能正常。客户端知道了自己接收发送功能都正常,也知道了服务端接收发送都正常,但服务端不知道客户端的接收功能是否正常,也不知道自己的发送功能是否正常。
第三次握手,客户端发送带有ACK标志给服务端,至此双方都确认了自己和对方接收、发送功能正常,连接正式建立。
SYN是客户端到服务端的确认标志;而ACK是反过来的确认标志。在TCP连接中,两者互相发送信息必须都无误才行。
之所以是三次握手而不是两次握手,主要原因是:如果客户端之前发了一个SYN,但是滞留在网络中没有传到服务端。如果只有两次握手,那么服务端之后如果收到这个过时请求不会再向客户端确认,而是直接建立连接,那么会白白浪费资源。
断开一个TCP连接需要四次挥手:
第一次挥手:客户端发送带FIN标志的数据包给服务端,告诉服务端客户端已停止传送数据。
第二次挥手:服务端发回客户端ACK,并进入CLOSE_WAIT状态,表示知道了。此时从客户端到服务端的传输通道关闭。(但反向通道没有关闭,于是此时连接处于半关闭状态)
第三次挥手:等到服务端的数据发送完毕后,它会再给客户端发一个FIN。
第四次挥手:客户端收到后返给服务端ACK,服务端收到后正式关闭通道。而客户端需要等待一段时间后再进入CLOSE状态。
之所以服务端不能在接收到ACK后立刻返回FIN,是因为终止数据传输的指令是上层应用层下达的,客户端只能终结自己这边的传输通道,而服务端的数据可能还没有传完。
最后,当客户端最终发给服务端ACK之后并不是马上CLOSE,而是等一段时间(通常是报文最大寿命时间),有两个原因:
HTTP 是一个客户端终端和服务器端请求和应答的标准,是基于TCP/IP之上的应用层协议。通过使用浏览器、网络爬虫等工具,客户端发起了一个请求到服务器上指定端口,我们称这个客户端为用户代理程序。应答的服务器上会存储一些资源,我们称这个应答服务器为源服务器。在用户代理和源服务器之间有很多中间层,比如代理服务器、网关、隧道等。
例如:在浏览器地址栏输入一个url,回车后所经历的流程如下:
HTTP定义了八种方法来操作指定的资源:
1xxx(信息):请求已服务器接收,继续处理。
2xxx(成功):请求已被服务器成功接收,理解。
3xxx(重定向):需要后续操作。
4xxx(客户端错误):请求无法实现。
5xxx(服务器错误):服务器在实现某个正常请求时出现问题
常见状态码:
200 OK: 请求成功
301 Moved permanently:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
400 Bad request:请求有语法错误,服务器无法理解
402 Unauthorized:请求要求用户的身份认证
403 Forbidden:服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found:服务器无法根据客户端的请求找到资源(网页)。
500 Internal Server Error:服务器内部错误,无法完成请求
URL,全称是Uniform Resource Locator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。
以下是一个url应有的格式:
http://www.mmm.com:80/max?name=max&age=26#first
HTTP以明文形式在浏览器和服务器之间传递信息,不提供加密。如果攻击者截取了报文,则可以直接窃取信息。
HTTPS则在HTTP的基础上添加了SSL加密协议。SSL依靠证书来验证服务器的身份,并且为客户端与服务端的通信提供加密。HTTPS协议更安全,但是在握手时也更耗时。
什么是REST?
Representation State Transfer:表现层状态转化。
表现层意思是“资源的表现方法”,比如文本的表现方法是txt文件,图片的表现方法是jpg等。而状态转化的意思是“通过某种手段让服务器发生变化”。这种手段就是HTTP协议操作。综上所述,REST的意思是:
REST是网络中client与server之间的交互风格,REST本身不实用,实用的是如何写出RESTful的API。
标签:完成 部分 拥塞 ref 虚拟 统一 客户 first 网上
原文地址:https://www.cnblogs.com/maxdofo/p/12927053.html