<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 什么Http協議 HTTP是HyperText Transfer Protocol(超文本傳輸協議)的簡寫,它是TCP/IP協議的一個應用層協議,用于定義WEB瀏覽器與WEB服務器之間交換數據的過程及數據本身的格式。 ? 版本:1.1(目前使用的)和1.0? 和1.1可以在一次TCP/IP鏈接上,發出多次請求和得到多次響應? 1.0每次都必須建立新的TCP/IP鏈接,比較浪費資源。 基于HTTP協議的客戶/服務器模式的信息交換過程,如圖所示,它分四個過程,建立連接、發送請求信息、發送響應信息、關閉連接。 三次握手? ![](https://box.kancloud.cn/2016-03-14_56e65d6ed1414.jpg) ## 請求部分 請求消息頭:客戶端給服務器端發送的一些附加信息。? ![](https://box.kancloud.cn/2016-03-14_56e65d6ef010a.jpg)? 請求部分詳解:? 1、請求行:位于請求內容的第一行。? 請求方式 請求的資源的URI地址 使用的協議及版本號? GET /app1/1.html HTTP/1.1 a、請求方式:? 請求方式有:GET(默認的)、POST、HEAD、DELETE等? GET方式:/app1/1.html?username=abc&password=123。把表單的數據緊跟在URI地址后面,用?進行分割。問號后面的內容,專業叫法:查詢字符串。請求行的長度不能超過1KB。不適合傳遞太多的數據。? POST方式:把表單的數據放在了請求的正文部分。沒有長度限制。? b、請求的URI:? URI:統一資源標識符。[http://localhost:8080/app1/1.html](http://localhost:8080/app1/1.html)(URL),去掉協議、主機、端口剩余的叫做URI。? c、客戶端使用的協議及版本。? 2、請求消息頭:? 界限:從第2行開始,到第一個空行結束。? ? Accept:瀏覽器可接受的MIME類型 。? Accept:text/html.? MIME類型是區分網絡上傳輸的數據類型的。MIME:大類型/具體類型。MIME類型和文件的擴展名有對應關系(Tomcat\conf\web.xml) ? Accept-Charset: 瀏覽器通過這個頭告訴服務器,它支持哪種字符集? ? Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式,比如gzip? Accept-Language:瀏覽器所希望的語言種類,當服務器能夠提供一種以上的語言版本時要用到。 可以在瀏覽器中進行設置。? Host:初始URL中的主機和端口? ? Referer:取值是一個URL,該URL表示用戶是由哪個頁面過來的。? ![](https://box.kancloud.cn/2016-03-14_56e65d6f12d14.jpg)? ? Content-Type:內容類型:告知服務器,請求正文的MIME數據類型,默認值:application/x-www-form-urlencoded? ? if-Modified-Since: Wed, 02 Feb 2011 12:04:56 GMT利用這個頭與服務器的文件進行比對,如果一致,則從緩存中直接讀取文件。? ? User-Agent:瀏覽器類型.? ? Content-Length:表示請求消息正文的長度? ? Connection:表示是否需要持久連接。如果服務器看到這里的值為“Keep -Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接? ? Cookie:這是最重要的請求頭信息之一 (會話管理時再講)? ? Date:Date: Mon, 22 Aug 2011 01:55:39 GMT請求時間GMT 3、請求正文:只有表單的請求方式是POST方式時才會出現。? username=abc&password=123 參數都是:key=value的形式,多個參數之間用&進行分割。 ## 響應部分 響應消息頭:服務器端給客戶端發送的一些附加信息。 ![](https://box.kancloud.cn/2016-03-14_56e65d6f295fe.jpg)? 3.1響應消息行:位于第一行? 服務器端使用的協議及版本 響應碼 響應碼描述? HTTP/1.1 200 OK? a、響應碼:? 1XX~5XX:目前用到了40個左右。? 記住常用的幾個狀態碼:? 200:一切正常? 302/307:請求重定向? 304:服務器的資源沒有修改。? 404:客戶端訪問的地址不存在? 500:服務器端程序遇到異常 3.2響應消息頭:(重點)? ? Location:?[http://www.it315.org/index.jsp](http://www.it315.org/index.jsp)指示新的資源的位置? 一般和302、307響應碼一起使用,完成請求重定向。? ? Server:apache tomcat指示服務器的類型? ? Content-Encoding: gzip告知客戶端服務器發送的請求正文內容的壓縮編碼? ? Content-Length: 80 告訴瀏覽器正文的長度? ? Content-Language: zh-cn服務發送的文本的語言? ? Content-Type: text/html; charset=GB2312服務器發送的內容的MIME類型? ? Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT文件的最后修改時間? ? Refresh: 1;url=[http://www.it315.org](http://www.it315.org/)指示客戶端刷新頻率。單位是秒 ? Content-Disposition: attachment; filename=aaa.zip指示客戶端下載文件? ? Set-Cookie:SS=Q0=5Lb_nQ; path=/search服務器端發送的Cookie(會話管理)? ? Expires: -1? ? Cache-Control: no-cache (1.1)? ? Pragma: no-cache (1.0) 三個頭一般一起使用,告訴客戶端不要緩存內容? ? Connection: close/Keep-Alive? ? Date: Tue, 11 Jul 2000 18:23:51 GMT 3.3響應正文:? 和在頁面上點擊右鍵“查看源碼”看到的是一樣的。 ## 三種禁止瀏覽器緩存的頭字段 ~~~ // 不要 緩存的 三個 頭 : //Cache-Control : no-cache // Pragma: no-cache // Expires: Thu, 01 Dec 1994 16:00:00 GMT (時間值 ) // 都是 用于 控制 瀏覽器 緩存的 , 當前 是要不緩存, 其 值 是 no-cache, no-cache,Thu, 01 Dec 1994 16:00:00 GMT 時間值 // 為什么 有三個 頭 啊 ? // 如果 要 通知 瀏覽器 不緩存, 最好 的方式 這個三個 都設置 response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); // 設置 expires 的時候 需要 調用 這個 方法 : setDateHeader(java.lang.String name, long date) response.setDateHeader("Expires", -1); ~~~ ## 狀態碼所表示的意義 狀態行? 格式: HTTP版本號 狀態碼 原因敘述? 舉例:HTTP/1.1 200 OK? 狀態碼用于表示服務器對請求的各種不同處理結果和狀態,它是一個三位的十進制數。響應狀態碼分為5類,使用最高位為1到5來進行分類如下所示: **一、200狀態碼:**? 成功2××: 成功處理了請求的狀態碼。? 1、200 :服務器已成功處理了請求并提供了請求的網頁。? 2、204: 服務器成功處理了請求,但沒有返回任何內容。? **二、300狀態碼:**? 重定向3×× :每次請求中使用重定向不要超過 5 次。? 1、301: 請求的網頁已永久移動到新位置。當URLs發生變化時,使用301代碼。搜索引擎索引中保存新的URL。? 2、302: 請求的網頁臨時移動到新位置。搜索引擎索引中保存原來的URL。? 3、304: 如果網頁自請求者上次請求后沒有更新,則用304代碼告訴搜索引擎機器人,可節省帶寬和開銷。? **三、400狀態碼:**? 客戶端錯誤4×× :表示請求可能出錯,妨礙了服務器的處理。? 1、400: 服務器不理解請求的語法。? 2、403: 服務器拒絕請求。? 3、404: 服務器找不到請求的網頁。服務器上不存在的網頁經常會返回此代碼。? 4、410 :請求的資源永久刪除后,服務器返回此響應。該代碼與 404(未找到)代碼相似,但在資源以前存在而現在不存在的情況下,有時用來替代404 頁面代碼。如果資源已永久刪除,應當使用 301 指定資源的新位置。? **四、500狀態碼:**? 服務器錯誤5×× :表示服務器在處理請求時發生內部錯誤。這些錯誤可能是服務器本身的錯誤,而不是請求出錯。? 1、500 :服務器遇到錯誤,無法完成請求。? 2、503: 服務器目前無法使用(由于超載或停機維護)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看