TCP/IP连接三次握手:   

  • 第一次握手:客户端发送一个SYN包给服务器,表示请求连接;
  • 第二次握手:服务器发送SYN+ACK包给客户端,表示收到你的请求,并同意连接;
  • 第三次握手:客户端发送确认包ACK给服务器,表示确认并开始连接。

TCP/IP断开四次挥手:

  • 第一次挥手:客户端发送一个FIN包给服务器,表示将要关闭客户端到服务器这个方向的连接;
  • 第二次挥手:服务器发送一个ACK包给客户端,表示同意客户端关闭连接的请求,但还没有准备好关闭连接;
  • 第三次挥手:服务器发送一个FIN包给客户端,表示将要关闭服务器到客户端这个方向的连接;
  • 第四次挥手:客户端发送一个确认包ACK给服务器,表示确认并关闭连接。

为什么TCP建立连接需要三次握手,而断开连接需要四次挥手?

  因为当服务器收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务器端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,”你发的FIN报文我收到了”。只有等到服务器端所有的报文都发送完了,服务器才能发送FIN报文,因此不能一起发送,故需要四步握手。

从输入一个URL到浏览器加载整个网页的过程?

  1. 浏览器通过DNS服务器解析查找URL对应的IP地址;
  2. 浏览器向服务器发送http请求,建立TCP连接;
  3. 服务器响应并处理http请求,返回相应的文件;
  4. 浏览器开始处理数据信息,并渲染页面,显示出来。

TCP/IP 五层模型中对应的协议有哪些?

  • 应用层:HTTP(超文本传输协议)、FTP(文件传送协议)、SMTP(简单邮件传送协议)
  • 运输层:TCP(传输控制协议)、UDP(用户数据报协议)
  • 网络层:IP(网际协议)、ICMP(网际控制报文协议)
  • 数据链路层:PPP(点对点协议)、CSMA/CD(载波监听多点接入/碰撞检测协议)
  • 物理层:IEEE802系列(局域网与城域网系列标准协议)

TCP与UDP的区别?

  1. TCP是面向连接的协议,UDP是无连接协议;
  2. TCP是可靠、有序、无界的,而UDP不可靠、无序、有界;
  3. TCP有流量控制(拥塞控制),而UDP 没有;
  4. TCP传输速度慢,而UDP传输速度快;
  5. TCP是重量级的,UDP是轻量级的,TCP的头部比 UDP大;
  6. TCP面向字节流,而UDP面向报文;
  7. TCP是点对点连接的,而UDP一对一,一对多,多对多都可以;
  8. TCP适合用于网页,邮件等,而UDP适合用于视频,语音广播等。

HTTP中GET与POST的区别?

  1. GET从指定的资源请求数据,POST向指定的资源提交要被处理的数据;
  2. GET请求有长度限制,而POST没有;
  3. GET的安全性较差,而POST比GET更安全
  4. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留;
  5. GET请求能被缓存、收藏为书签,而POST不能;
  6. GET请求只能进行url编码,而POST支持多种编码方式
  7. GET数据在URL中对所有人都是可见的,而POST数据不会显示在URL中;
  8. GET和POST本质上就是TCP连接,但GET产生一个TCP数据包,而POST产生两个TCP数据包。

 HTTP 状态码有哪些?

  • 1XX(临时响应):表示临时响应并需要请求者继续执行操作的状态代码;

    • 100(继续):请求者应当继续提出请求;
    • 101(切换协议):请求者要求服务器切换协议;
  • 2XX(成功):表示成功处理了请求的状态代码;
    • 201(已创建):请求成功并且服务器创建了新资源;
    • 202(已接受):服务器已接受请求,但尚未处理;
    • 203(非授权信息):服务器已成功处理了请求,但返回信息可能来自另一来源;
    • 204(无内容):服务器成功处理了请求,但没有返回任何内容;
    • 205(重置内容):服务器成功处理了请求,但没有返回内容,要求请求者重置内容;
  • 3XX(重定向):表示要完成请求,需要进一步操作;

    • 300(多种选择):针对请求,服务器可执行多种操作;
    • 301(永久移动):请求的网页已永久移动到新位置;
    • 302(临时移动):服务器目前从不同的位置的网页响应请求;
    • 304(未修改):自从上次请求后,请求的网页未修改过;
  • 4XX(请求错误):表示请求可能出错,妨碍了服务器的处理;
    • 400(错误请求):服务器不理解请求的语法;
    • 401(未授权):请求要求身份验证;
    • 403(禁止):服务器禁止请求;
    • 404(未找到):服务器找不到请求的网页;
  • 5XX(服务器错误):表示服务器在尝试处理请求时发生内部错误;

    • 500(服务器内部错误):服务器运到错误,无法完成请求;
    • 502(错误网关):服务器作为网关或代理,从上游服务器收到无效响应;
    • 503(服务不可用):服务器目前无法使用;
    • 504(网关超时):服务器作为网关或代理,但是没有及时从上游服务器收到请求。

版权声明:本文为mix88原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/mix88/p/9965744.html