java之http協議

来源:http://www.cnblogs.com/huangnn/archive/2017/08/21/7406418.html
-Advertisement-
Play Games

HTTP協議 自從入坑以來,只要是跟web打交道,總是免不了這個HTTP協議,這是什麼鬼,讓我們一探究竟。(不周之處還請賜教!!!) 既然是協議,我們首先要問三個問題,誰跟誰的協議?協議是什麼?怎麼用? 第一個問題: 誰跟誰的協議? 所謂協議,至少需要兩方,甲方and乙方,我們先說下甲方and乙方到 ...


                                               HTTP協議

          自從入坑以來,只要是跟web打交道,總是免不了這個HTTP協議,這是什麼鬼,讓我們一探究竟。(不周之處還請賜教!!!

          既然是協議,我們首先要問三個問題,誰跟誰的協議?協議是什麼?怎麼用?

第一個問題:

      誰跟誰的協議?

   所謂協議,至少需要兩方,甲方and乙方,我們先說下甲方and乙方到底是誰,粗俗的理解,甲方就是我們用的瀏覽器客戶端,乙方就是伺服器--(可以先這樣理解---存儲你想要的頁面的地方),http協議就是他們倆要遵守的協議。

第二個問題:

     協議是什麼?

   還是要俗,比如說你去超市買東西,你跟售貨員說來一瓶罐裝可口可樂,註意這裡面有三個元素(你,可口可樂,售貨員),你跟售貨員之間就遵循了一份協議。而可口可樂就是這份協議當中的一份內容,你說要罐裝的可口可樂,售貨員就給你拿一罐罐裝的可口可樂,你說要紅茶,售貨員肯定給你拿紅茶而不是其他的東西,這就是是http協議,它定義了你的請求格式,也定義了伺服器的返回格式。你的請求格式:(一瓶,罐裝,可口可樂可樂),如果售貨員有的話-格式(有,一瓶,罐裝,可口可樂),如果沒有的話--格式(沒有)。

         官方語言:

     HTTP是hypertext transfer protocol(超文本傳輸協議)的簡寫,它是TCP/IP協議的一個應用層協議,用於定義WEB瀏覽器與WEB伺服器之間交換數據的過程。客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵守一定的通訊格式,HTTP協議用於定義客戶端與web伺服器通迅的格式。

第三個問題:

         怎麼用?

    http協議就是瀏覽器客戶端跟伺服器之間的協議,你想要訪問一個頁面,而頁面存儲在伺服器,你得向伺服器要,而怎麼要就是你(也就是甲方)要遵循的協議,舉個例子說明

                                                 

    第一個紅色框框:GET是你請求資源的方式,/JavaWebDemoProject/Web/1.jsp----- 你要請求的頁面,HTTP/1.1----http協議的版本,

    第二個紅色框框:accept:瀏覽器通過這個頭告訴伺服器,它所支持的數據類型
                           Accept-Charset: 瀏覽器通過這個頭告訴伺服器,它支持哪種字元集
         Accept-Encoding:瀏覽器通過這個頭告訴伺服器,支持的壓縮格式
            Accept-Language:瀏覽器通過這個頭告訴伺服器,它的語言環境
            Host:瀏覽器通過這個頭告訴伺服器,想訪問哪台主機
         If-Modified-Since: 瀏覽器通過這個頭告訴伺服器,緩存數據的時間
           Referer:瀏覽器通過這個頭告訴伺服器,客戶機是哪個頁面來的  防盜鏈
            Connection:瀏覽器通過這個頭告訴伺服器,請求完後是斷開鏈接還是何持鏈接

既然我們已經發出請求了,剩下的就是伺服器的回應了。

 

 第一個紅色框框:http/1.1還是http協議的版本號,200是狀態碼--指的是對你的請求做出的回應   OK返回狀態的原因,常見的狀態碼貼上:

第二個紅色框框:告訴你的瀏覽器返回內容的類型啊,格式啊,字元編碼啊,大小啊還有伺服器的的一些基本信息啊這些東西吧,不做過多的解釋了。

第三個紅色框框:當然就是你想要頁面的內容了,然後你的瀏覽器接收這些內容,然後以頁面的形式展現給你!

 

好了,http協議本人理解的就這麼多了,希望對大家有幫助。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上面的代碼實現的只是簡單而繁瑣的一種,後面的代碼會一直重覆,因此並沒有寫下去,後面的是我看視頻附帶的代碼,我也附上,較我寫的完整一些 ...
  • 1 1、請求周期 2 url> 路由 > 函數或類 > 返回字元串或者模板語言? 3 4 Form表單提交: 5 提交 -> url > 函數或類中的方法 6 - .... 7 HttpResponse('....') 8 render(request,'index.html') 9 redirec ...
  • 簡史 官方文檔說的很清楚,商戶已有H5商城網站,用戶通過消息或掃描二維碼在微信內打開網頁時,可以調用微信支付完成下單購買的流程。 當然,最近微信支付平臺也加入了純H5支付,也就是說用戶可以在微信以外的手機瀏覽器請求微信支付的場景喚起微信支付。 當然,今天的主角是微信公眾號支付,其實也不一定非在公眾號 ...
  • 最近接手的 Apache HUE 項目性能出現了問題,線上經常出現響應時間過長或因為時間過長而無法服務等問題.老大讓我準備弄個性能分析工具,便於追蹤和分析平臺當前的瓶頸出現在哪裡. 那就搞起吧!先從代碼性能分析入手.本篇博客分享的也是代碼層面的性能分析. 之前用過的就有 插件. 這款插件主要可以用來 ...
  • AJAX = Asynchronous JavaScript and XML(非同步的 JavaScript 和 XML)。 Ajax作用:是用JavaScript向伺服器發送非同步請求,然後伺服器給出響應,然後以XML格式的文件返回給瀏覽器端! 非同步:當瀏覽器向伺服器發送請求的時候,不是整個頁面刷新, ...
  • <?php//簡單函數function show(){ echo "hello"; }show(); //有參數的函數function show($a){ echo "$a"; }show("world"); //有返回值的函數 function show(){ return "小V,你好!"; } ...
  • /** * 文檔註釋只定義在三個地方 : 類、常量、方法上 * 在類上定義文檔註釋用來說這個類設計及其解決問題等相關描述信息 * @author 作者 * @version 1.0 21/08/17 版本號 修改的版本號和最後修改 *的時間 * @see java.lang.String 參考的類, ...
  • PHP程式員閱讀Java語言實現設計模式的書,然後用Go語言實現。配以現實生活中的實例,幫助理解設計模式。本篇包括:策略、觀察者、裝飾者、工廠、單例、命令、適配器、外觀。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...