http1.0和http2.0的区别
时间: 2024-06-05 20:07:23 浏览: 81
HTTP 1.0和HTTP 2.0的主要区别在于性能方面。HTTP 1.0基于纯文本传输协议,每个请求和响应都需要单独建立连接,而HTTP 2.0使用二进制格式传输,采用多路复用技术,可以同时在一个连接中传输多个请求和响应。这意味着HTTP 2.0比HTTP 1.0更快、更高效、更可靠,可以提供更好的性能和用户体验。此外,HTTP 2.0还支持头压缩、服务器推送、流优先级等新特性,可以进一步优化网络性能和传输效率。
相关问题
面试官:说说 HTTP1.0/1.1/2.0 的区别?
HTTP1.0和HTTP1.1最明显的区别在于持久连接和管道化连接的支持。HTTP1.0默认使用非持久连接,每次请求都需要建立一个新的TCP连接,而HTTP1.1默认使用持久连接,同一个TCP连接可以用于多个请求和响应。HTTP1.1还支持管道化连接,即在一个TCP连接中同时发送多个请求,这样可以减少网络延迟和提高性能。
HTTP2.0相比之下则更加强调性能优化和多路复用。它采用二进制传输协议,将HTTP报文分割为更小的帧进行传输,并支持多路复用,即在一个TCP连接中同时进行多个请求和响应。HTTP2.0还支持头部压缩和服务器推送等特性,可以进一步提高性能和减少延迟。
In [16]: wine_data=data.iloc[:-5,:] wine_target=data.iloc[-5:,:] In [17]: from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split x=wine_data.iloc[:,1:].values y=wine_data.iloc[:,0].values x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=42) #建立模型 dtc=DecisionTreeClassifier(criterion='entropy')#基于熵评价纯度 dtc.fit(x_train,y_train)#拟合数据 y_pre=dtc.predict(x_test) y_pre Out[17]: array([3.0, 1.0, 3.0, 2.0, 2.0, 2.0, 2.0, 1.0, 3.0, 2.0, 3.0, 1.0, 2.0, 3.0, 2.0, 1.0, 2.0, 1.0, 3.0, 2.0, 2.0, 2.0, 2.0, 1.0, 3.0, 2.0, 3.0, 1.0, 2.0, 1.0, 2.0, 1.0, 2.0, 2.0, 3.0, 3.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0, 3.0, 1.0, 1.0, 1.0, 2.0, 1.0, 2.0, 1.0, 3.0, 3.0]) In [18]: dtc.predict(wine_target.iloc[:,1:].values) Out[18]: array([2.0, 2.0, 2.0, 3.0, 1.0]) In [19]: from sklearn.metrics import mean_squared_error #先获得预测的y值y_pre y_pre=dtc.predict(x_test) mean_squared_error(y_test,y_pre) Out[19]: 0.0 In [20]: print("决策树 训练精度:",dtc.score(x_test,y_test)) print("决策树 泛化精度:",dtc.score(x_train,y_train)) 决策树 训练精度: 1.0 决策树 泛化精度: 1.0 In [21]: #KNN最近邻分类算法 from sklearn.neighbors import KNeighborsClassifier from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split x=wine_data.iloc[:,1:].values y=wine_data.iloc[:,0].values x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=125) dtr=KNeighborsClassifier() dtr.fit(x_train,y_train) dtr.score(x_test,y_test) Out[21]: 0.9807692307692307 In [22]: model_knn=KNeighborsClassifier(n_neighbors=5)#看5个近邻的类别确定分类 model_knn.fit(x_train,y_train) #预测 model_knn.predict(x_test) Out[22]: array([3.0, 3.0, 1.0, 2.0, 1.0, 3.0, 3.0, 1.0, 2.0, 3.0, 2.0, 1.0, 2.0, 1.0, 2.0, 1.0, 2.0, 2.0, 3.0, 1.0, 1.0, 3.0, 1.0, 2.0, 1.0, 2.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0, 2.0, 1.0, 1.0, 2.0, 3.0, 1.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, 2.0, 3.0, 2.0, 1.0]) In [23]: dtr.predict(wine_target.iloc[:,1:].values) Out[23]: array([2.0, 2.0, 3.0, 3.0, 1.0]) In [24]: neighbors = 3 from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(neighbors) knn.fit(x_train,y_train) print("KNN 训练精度:",knn.score(x_test,y_test)) print("KNN 泛化精度:",knn.score(x_train,y_train)) KNN 训练精度: 0.9615384615384616 KNN 泛化精度: 0.9586776859504132代码解释
这段代码主要是进行机器学习的分类任务,使用了决策树和K近邻算法。首先将数据分为训练集和测试集,然后使用DecisionTreeClassifier和KNeighborsClassifier分别建立决策树和K近邻分类模型,并使用训练数据拟合模型。决策树模型使用熵评价纯度。使用模型对训练集和测试集进行评估,计算预测准确率。最后使用模型对新的数据进行预测。使用mean_squared_error计算决策树模型的均方误差。K近邻算法中,n_neighbors表示选择的最近邻个数。最后输出模型的训练精度和泛化精度。
阅读全文