http协议、进程与线程等

本文详细介绍了HTTP协议的区别,如http1.0与http1.1的特性,以及http2的优势,包括二进制传输、头部压缩和Server Push。接着讨论了电子邮件协议SMTP、POP3和IMAP4的作用。最后,阐述了进程和线程的概念、状态以及它们之间的区别和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、http1.0和http1.1的区别

① 1.1支持长连接和请求的流水线处理,在同一个TCP连接中可以传送多个HTTP请求和响应,多个请求和响应可以重叠;

    1.0 短连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后,立即断开TCP连接,并且无记录。

② 1.1增加host字段

在1.0中认为每台服务器都绑定一个唯一的IP地址,请求消息中的URL并没有主机名(host),但是随着虚拟机技术的发展,一台物理机可以存放多个虚拟机,并且他们共享一个IP;

1.1的请求消息和响应消息都应支持Host头域,请求消息中如果没有Host头域会400报错。

③ 增加状态码100(contine)--节约带宽

客户端事先发送一个只带头域的请求,如果服务器拒绝请求,就回送响应码401,如果接受,则回送码100,客户端就可以继续发送带实体的完整请求。

④ 1.1 发送方将消息分割成若干个任意大小的数据块,每个数据块在发送时都附上块的长度,最后用一个零长度的块作为消息结束的标志,这种方法允许只发送消息里的一个片段。

⑤ 1.1增加cache属性。

http2比http1的优势

 

  • http2采用二进制格式传输,而非http1文本格式,二进制格式在协议的解析和优化扩展上带来了很多优势
  • http2对消息头采用Hpack进行压缩传输,节省网络流量,Http1每次请求都会携带冗余的头消息,浪费带宽资源
  • http2采用Server Push,服务器能够更快的把资源推送到客户端
  • 保持与http1语义的向后兼容性

http2头部压缩:一般而言,消息主题是经过gzip压缩的,或者本身就是压缩后的二进制文本(如图片、音频等),但是状态行和头部是没有经过任何压缩的,而是以纯文本的方式进行传输的。而随着web功能的复杂,请求数量越来越多,随之而来的就是头部流量的浪费,所以压缩头部,压缩方式就是HAPCK算法(客户端和服务器端分别缓存一份索引表,如果头部存在索引表中,则用对应的索引值;否则进行哈夫曼编码,加入索引表中)。

2、电子邮件协议

常用的电子邮件协议有:SMTP、POP3、IMAP4,他们隶属于TCP/IP协议,默认情况下,分别通过TCP端口25,110,143.

① SMIP协议(Simple Mail Transfer Protocol)简单邮件传输协议

它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。

它是事实上的E-Mail传输的标准

② POP协议

POP邮局协议负责从邮件服务器中检索电子邮件。

③ IMAP协议互联网信息访问协议是一种由于POP的新协议

 

3、线程和进程

进程

①在系统中能独立运行的活动实体,并作为资源分配的基本单位,它是由一组机器指令,数据和堆栈等组成的。

②进程的3个状态:就绪(程序已经获得除处理机之外的所有资源,等待分配处理机资源)、执行、等待(阻塞:进程在等待某种条件,在条件满足之前无法执行;他正等着输出一批数据)

③进程只能由父进程建立,系统中的所有进程形成一种进程树的层次体系

线程

①线程是进程内的一个相对独立的可执行的单元

②线程是被cpu调度的基本单元。所以,每个进程在创建时,需要同时为该进程创建一个或多个线程

③同一进程内的多个线程共享该进程的资源,但线程并不拥有资源,只是使用它们

重要区别:从逻辑角度来看,多线程的意义在于在一个应用程序中,有多个执行部分可以同时进行。但是操作系统并没有将多个线程看成多个独立的应用,来实现进程的调度和管理以及资源分配。

同一进程中线程共享哪些资源?

一般来说,如果某些资源不独享会导致线程运行错误,则该资源由每个线程独享

线程共享资源线程独享资源
地址空间程序计数器
全局变量

寄存器

打开的文件
子进程线程ID

根据操作系统内核是否对线程可感知,可以将线程分为内核极线程和用户极线程

用户级线程:由应用程序所支持的线程实现,内核意识不到用户级线程的实现

内核级线程:内核支持的线程

什么时候用进程,什么时候用线程?

优先使用线程:

①需要频繁创建销毁,因为进程的创建销毁代价较大

②需要频繁切换,大量计算;因为线程的切换速度快

③并行操作,如C/S架构的S并发线程响应用户的请求

优先使用进程:

①弱相关的处理

“消息收发”和“消息处理”就是弱相关的任务,“消息处理”可能有消息解码、业务处理。这两个任务相关性就强多了

4、进程和程序区别

①程序是静态的,进程是动态的;程序是有序代码的集合,进程是程序的执行

②程序是永久的,进程是短暂的;进程是一个状态变化的过程

③组成不一样,进程的组成包括程序,数据和进程控制块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值