一、计算机网络体系结构

二、TCP与UDP差异

1.TCP是面向连接的可靠传输,UDP是面向无连接的不可靠传输

  面向连接表现在3次握手,4次挥手;可靠传输表现在未进行4次挥手时的差错重传,超时重传;
  TCP UDP传输时都会建立虚拟信道,区别是TCP要进行握手确认,直到挥手才注销信道,UDP则传输完成就注销信道并不在意接收方收到消息与否。

2.TCP是面向流的传输,UDP是基于数据报的传输

  流传输可进行流量控制传输,可进行分组传输,可进行拥塞控制传输;基于报文的传输不拆分不合并,无论多大一次性发送。

3.TCP面向系统资源要求较多,UDP相对较少

  TCP需要握手挥手,TCP头部20字节,UDP头部8字节

4.TCP与UDP的应用场景不同

  TCP效率要求相对较低,对传输的准确性要求较高,例如:HTTP请求、文件传输、远程登录
  UDP效率要求相对较高,对传输的准确性要求相对较低,例如:视频通话、语音通话、偶尔断续也不会影响,不会有流量控制、拥塞控制,偶尔丢帧影响不大

5.UDP的优势

  简单
  传输快
  支持一对一、一对多、多对多,而TCP是基于点对点的

二、三次握手与四次挥手

1.三次握手
  A向B发起请求
  B向A返回确认消息
  A向B发起确认包并分配资源

第三次握手是为了防止失效的连接到达服务器,让服务器打开错误的连接,失效的请求是指滞留在网络中的请求,有了第三次握手,滞留在网络中的请求到达服务器时就会拒绝创建连接

2.四次挥手
  C向D发起挥手请求
  D向C返回确认消息(此时并不会立即断开,等待一定的时间)
  D向C传递剩余的数据
  C向D发送确认挥手的消息,此时才断开

三、HTTP协议概述

3.1 Cookie与Session

3.1.1 Cookie

  Http协议是无状态的短连接,因此引入Cookie保存状态信息;Cookie是服务器发送到用户浏览器并保存在本地的一小块数据,会在下次请求时携带在请求头发送到服务器,判别两次两次请求是否来自同一浏览器,例如登录状态。

  cookie作用:记录会话状态、浏览器行为跟踪。

  cookie创建过程:服务器发送响应报文时,通过set-cookie置于响应头中。

  cookie安全性:较差,可通过标记cookie为secure来提高安全性。  --设置请求类型为Https

3.1.2 Session

  session将会话信息存储到服务器,本地通过cookie只存储sessionId,使用session维护登录状态相对于cookie较安全。

3.1.3 二者区别

  cookie只能存ASCII字符串,session可存取任何类型数据,cookie存在浏览器本地易被恶意查看

3.2缓存

  缓解服务器响应压力。
  降低客户端获取资源的延迟,缓存比服务器离客户端近。

3.3短链接与长链接

  短连接:每发起一次请求获取资源后就断开。

  长连接:发起请求获取资源后不断开。每次发起新的请求都需要进行三次握手协议,当浏览器访问包含多张图片资源的页面时,除进行页面资源的请求外,还需要图片资源的请求,如果每次都进行TCP连接,开销很大,长连接的出现就是为建立一次TCP连接可进行多次HTTP通信。

3.4流水线

  默认情况下HTTP请求是按顺序发出的,下一个请求只有在上一个请求收到应答后才会发出,由于网络延迟和带宽限制可能造成长时间的等待。流水线是同一条长连接上发出的连续的请求,而不用等带响应返回,可避免连接延迟。

3.5HTTPS

  HTTP先与SSL通信,再由SSL与TCP通信

  认证:第三方机构授予服务器、客户端的证书,包含公钥。

  混合加密:使用非对称加密进行传输,使用对称加密进行通信。

3.6GET与POST

  get post
后退/刷新按钮 无害 重新提交
书签 可收藏 不可收藏
缓存 能被缓存 不可被缓存
历史 参数保留在历史浏览记录 不保留
数据长度 有限制 不限制
数据类型 只允许ASCII字符串 不限制
安全性 稍差,参数携带在URL中  稍好,参数在请求体且不会保存在历史记录
可见性 任何人可见URL 数据不会显示在URL中
GET与POST本质都是TCP连接,并无差别,重大差别是GET产生一个数据包,POST产生两个数据包;GET会把请求头请求参数一并发出去,返回200;POST首次只发送请求头,响应100,浏览器在发送请求体,响应200.

3.7HTTP各版本

3.7.1HTTP1.0与HTTP1.1区别

1.HTTP1.1支持长连接和请求的流水线处理

  通过增加Connection请求头为keep-Alive来实现长连接

2.HTTP1.1增加host字段

  HTTP1.0认为每台服务器绑定唯一的IP地址,虚拟技术的发展,一台物理服务器可以存在多个虚拟主机,共享一个IP。

  HTTP1.1请求头中host字段指明服务器地址(域名/IP),无host会返回400.

3.增加响应状态码 100 continue

  HTTP1.1支持分块请求,先发请求头,响应401表示拒绝访问未认证,中断请求,响应100表示可继续请求,节约带宽。

4.HTTP1.1引入chunked transfer-coding 支持分块响应

  发送方将信息分割成若干个任意大小的数据块,每个数据块在发送时都会附上块长度,最后一块会零长度作为消息的结束标志。此特性允许只缓冲消息的片段,避免缓冲整个消息带来的过载。

5.HTTP1.1在HTTP1.0的基础上加入了一些Cache的新特性

  例如:当缓存对象的Age过期时,Cache不需要直接抛弃,而与服务器进行重新激活。

3.8.1HTTP2.0

  在HTTP1.1的基础上主要增加长连接的性能。

常用传输层协议(tcp/ip+udp)与常用应用层协议简述(http)的更多相关文章

  1. UNIX网络编程---传输层:TCP、UDP、SCTP(二)

    UNIX网络编程----传输层:TCP.UDP.SCTP 一.概述 本章的焦点是传输层:包括TCP.UDP.和SCTP(流控制传输协议).SCTP是一个较新的协议,最初设计用于跨因特网传输电话信令. ...

  2. 传输层的TCP和UDP协议

    作者:HerryLo 原文永久链接: https://github.com/AttemptWeb... TCP/IP协议, 你一定常常听到,其中TCP(Transmission Control Pro ...

  3. OSI七层和TCP/IP四层的关系、TCP与UDP、HTTP、Socket

    HTTP(应用层协议):超文本传输协议,HTTP协议是建立在TCP协议之上的一种应用. HTTP协议详细解释 2Http详解 TCP(面向连接的传输层协议):transmission control ...

  4. OSI七层与TCP/IP四层(小结)

    OSI 七层模型 我们一般使用的网络数据传输由下而上共有七层,分别为物理层.数据链路层.网络层.传输层.会话层.表示层.应用层,也被依次称为 OSI 第一层.第二层.⋯⋯. 第七层. 各层功能简介 1 ...

  5. HTTP/TCP/IP UDP Socket等区别联系

    1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. ...

  6. android 网络编程--socket tcp/ip udp http之间的关系

    网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层,一般编程人员接触最多的就是应用层和运输层,再往下的就是所谓的媒体层了,不是我们研究的对象. 下面是应用层.运输层,网络 ...

  7. TCP/IP和OSI/RM以及协议端口

    TCP/IP:数据链路层:ARP,RARP网络层: IP,ICMP,IGMP传输层:TCP ,UDP,UGP应用层:Telnet,FTP,SMTP,SNMP. OSI:物理层:EIA/TIA-232, ...

  8. 传输层协议TCP和UDP

    本文力图简洁,让读者对TCP和UDP有个初步的认知.闲话少说,现在开始吧.TCP和UDP都是传输层的协议.TCP通过三次握手建立可靠连接,对未送达的消息重新进行发送.UDP不建立连接而直接发送,对未送 ...

  9. 浅谈传输层协议TCP和UDP

    在当今因特网的层次结构中,传输层的协议主要有两种,其一为Transmission Control Protocol,即TCP:其二为User Datagram Protocol,即UDP. 1.TCP ...

随机推荐

  1. Qt Installer Framework翻译(3-1)

    初始化安装 下图说明了安装应用程序的默认工作流程: 本节使用在macOS上运行的Your Application Installer示例来说明默认工作流程.安装程序具有本地化外观,并可感知每个受支持的 ...

  2. poj-1753题题解思路

    今天天气很好! 首先题意是这样的:: 翻盖游戏是在一个长方形的4x4场上进行的,其16个方格中的每一个都放置了双面的棋子.每一块的一边是白色的,另一边是黑色的,每一块都是躺着的,要么是黑色的,要么是白 ...

  3. 「 从0到1学习微服务SpringCloud 」10 服务网关Zuul

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」06 统一配置中心Spring Cloud Config 「 从0到1学习微服务SpringCloud 」07 RabbitM ...

  4. 10、python函数

    前言:本文主要介绍python函数的定义和调用.函数的参数.函数的作用域.内置函数. 一.函数的定义和调用 1.函数的作用 对特定的一些功能进行封装,提高代码的重用率,进而提升开发的效率,格式: de ...

  5. 使用静态URL片段 URL路由 精通ASP-NET-MVC-5-弗瑞曼

  6. 缓冲区溢出实例(二)--Linux

    原理:crossfire 1.9.0 版本接受入站 socket 连接时存在缓冲区溢出漏洞. 工具: 调试工具:edb: ###python在漏洞溢出方面的渗透测试和漏洞攻击中,具有很大的优势   实 ...

  7. AVR单片机教程——矩阵键盘

    本文隶属于AVR单片机教程系列.   开发板上有4个按键,我们可以把每一个按键连接到一个单片机引脚上,来实现按键状态的检测.但是常见的键盘有104键,是每一个键分别连接到一个引脚上的吗?我没有考证过, ...

  8. Hyper-V虚拟机Redhat添加网卡找不到网卡配置文件解决方法

    环境:Hyper-V虚拟机上面安安装Redhat6.7 问题:系统安装时,只有一块网卡,现根据需要,增加一块网卡,DHCP获取IP地址,在Hyper-V设置中增加网卡后,存在连个问题:1./etc/s ...

  9. C语言博客作业8

    本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业地址 我在这个课程的目标是 熟练运用C语言来写代码 这个作业在那个具体方面帮助我实现目标 while语句的运用 参考文献 ...

  10. POI导出excel的三种方式

    原文链接:https://www.cnblogs.com/zhaoblog/p/7661245.html poi导出excel最常用的是第一种方式HSSFWorkbook,不过这种方式数据量大的话会产 ...