1、HTTP 1.1支援長連線(PersistentConnection)和請求的管線(Pipelining)處理
HTTP 1.0規定瀏覽器與伺服器只保持短暫的連接,瀏覽器的每次請求都需要與伺服器建立一個TCP連接,伺服器完成請求處理後立即斷開TCP連接,伺服器不追蹤每個客戶也不記錄過去的請求。 (推薦學習:web前端視訊教學)
HTTP 1.1則支援持久連線Persistent Connection, 並且預設使用persistent connection. 在同一個tcp的連線中可以傳送多個HTTP請求和回應. 多個請求和回應可以重疊,多個請求和回應可以同時進行. 更加多的請求頭和回應頭(例如HTTP1.0沒有host的欄位).
在1.0時的會話方式:
1. 建立連線
2. 發出請求訊息
3. 回傳回應訊息
4. 關掉連接
HTTP 1.1的持續連接,也需要增加新的請求頭來幫助實現,例如,Connection請求頭的值為Keep-Alive時,客戶端通知伺服器返回本次請求結果後保持連接;Connection當請求頭的值為close時,客戶端通知伺服器傳回本次請求結果後關閉連線。 HTTP 1.1也提供了與身分認證、狀態管理和Cache快取等機制相關的請求頭和回應頭。
請求的管線(Pipelining)處理,在一個TCP連線上可以傳送多個HTTP請求和回應,減少了建立和關閉連線的消耗和延遲。例如:一個包含有許多圖像的網頁檔案的多個請求和應答可以在一個連接中傳輸,但每個單獨的網頁檔案的請求和應答仍然需要使用各自的連接。 HTTP 1.1也允許客戶端不用等待上一次請求結果返回,就可以發出下一次請求,但伺服器端必須按照接收到客戶端請求的先後順序依次回傳回應結果,以保證客戶端能夠區分出每次請求的響應內容。
2.HTTP 1.1增加host欄位
在HTTP1.0中認為每台伺服器都綁定一個唯一的IP位址,因此,請求訊息中的URL並沒有傳遞主機名稱(hostname)。但隨著虛擬主機技術的發展,在一台實體伺服器上可以存在多個虛擬主機(Multi-homed Web Servers),並且它們共用一個IP位址。
HTTP1.1的請求訊息和回應訊息都應支援Host頭域,且請求訊息中如果沒有Host頭域會報告一個錯誤(400 Bad Request)。此外,伺服器應該接受以絕對路徑標記的資源請求。
3、100(Continue) Status(節約頻寬)
HTTP/1.1加入了一個新的狀態碼100(Continue)。客戶端事先發送一個只帶頭域的請求,如果伺服器因為權限拒絕了請求,就回送響應碼401(Unauthorized);如果伺服器接收此請求就回送響應碼100,客戶端就可以繼續發送帶實體的完整請求了。 100 (Continue) 狀態碼的使用,允許客戶端在發request訊息body之前先用request header試探server,看server要不要接收request body,再決定要不要發request body。
4、HTTP/1.1中引入了Chunked transfer-coding來解決上面這個問題,發送方將訊息分割成若干個任意大小的資料塊,每個資料塊在發送時都會附上區塊的長度,最後用一個零長度的區塊作為訊息結束的標誌。這種方法允許發送方只緩衝訊息的一個片段,避免緩衝整個訊息帶來的過載。
5、HTTP/1.1在1.0的基礎上加入了一些cache的新特性,當快取對象的Age超過Expire時變成stale對象,cache不需要直接拋棄stale對象,而是與來源伺服器進行重新激活(revalidation)。
以上是http1.0和1.1區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Springboot内置tomcat禁止不安全HTTP方法1、在tomcat的web.xml中可以配置如下内容让tomcat禁止不安全的HTTP方法/*PUTDELETEHEADOPTIONSTRACEBASIC2、Springboot使用内置tomcat没有web.xml配置文件,可以通过以下配置进行,简单来说就是要注入到Spring容器中@ConfigurationpublicclassTomcatConfig{@BeanpublicEmbeddedServletContainerFacto

1.HttpURLConnection使用JDK原生提供的net,无需其他jar包,代码如下:importcom.alibaba.fastjson.JSON;importjava.io.BufferedReader;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.net.HttpURLConnection;

随着互联网的不断发展和改善,Web服务器在速度和性能上的需求也越来越高。为了满足这样的需求,Nginx已经成功地掌握了HTTP2协议并将其融入其服务器的性能中。HTTP2协议要比早期的HTTP协议更加高效,但同时也存在着特定的安全问题。本文将为您详细介绍如何进行Nginx的HTTP2协议优化和安全设置。一、Nginx的HTTP2协议优化1.启用HTTP2在N

一、前言#ssl写在443端口后面。这样http和https的链接都可以用listen443sslhttp2default_server;server_namechat.chengxinsong.cn;#hsts的合理使用,max-age表明hsts在浏览器中的缓存时间,includesubdomainscam参数指定应该在所有子域上启用hsts,preload参数表示预加载,通过strict-transport-security:max-age=0将缓存设置为0可以撤销hstsadd_head

httpkeepalive在http早期,每个http请求都要求打开一个tpcsocket连接,并且使用一次之后就断开这个tcp连接。使用keep-alive可以改善这种状态,即在一次tcp连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少time_wait状态连接,以此提高性能和提高httpd服务器的吞吐率(更少的tcp连接意味着更少的系统内核调用,socket的accept()和close()调用)。但是,keep-ali

一、urllib概述:urllib是Python中请求url连接的官方标准库,就是你安装了python,这个库就已经可以直接使用了,基本上涵盖了基础的网络请求功能。在Python2中主要为urllib和urllib2,在Python3中整合成了urllib。Python3.x中将urllib2合并到了urllib,之后此包分成了以下四个模块:urllib.request:它是最基本的http请求模块,用来模拟发送请求urllib.error:异常处理模块,如果出现错误可以捕获这些异常urllib

一、概述在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信、天气等)。在Java项目中调用第三方接口的方式有:1、通过JDK网络类Java.net.HttpURLConnection;2、通过common封装好的HttpClient;3、通过Apache封装好的CloseableHttpClient;4、通过SpringBoot-RestTemplate;二、Java调用第三方

被动检查对于被动健康检查,nginx和nginxplus会在事件发生时对其进行监控,并尝试恢复失败的连接。如果仍然无法恢复正常,nginx开源版和nginxplus会将服务器标记为不可用,并暂时停止向其发送请求,直到它再次标记为活动状态。上游服务器标记为不可用的条件是为每个上游服务器定义的,其中包含块中server指令的参数upstream:fail_timeout-设置服务器标记为不可用时必须进行多次失败尝试的时间,以及服务器标记为不可用的时间(默认为10秒)。max_fails-设置在fai

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器