主頁 >  其他 > web基礎與HTTP協議

web基礎與HTTP協議

2023-06-16 07:52:35 其他

目錄

一、DNS

二、域名

三、web基礎

四、HTTP

五、總結

 

 

 

 

 

 

 

 

摘要:簡單敘述web基礎,網頁的概念,域名決議,域名結構,HTML超文本傳輸語言,cookie和session擴展

 

一、DNS   

  1.DNS概念

      內網和外網無法通信,為了內網可以和外網通信,dns技術解決問題,可以將公網和私網互相通信,

  

     2.DNS型別

        正向決議:將域名決議為IP地址,

        反向決議:將IP地址轉換為域名地址,

 

     3.DNS決議方式

        (1) 快速決議檔案/etc/hosts

            linux系統中負責快速決議的檔案,包含了ip與主機名的映射關系,在沒有DNS服務器的情況下,使用本地/etc/hosts完成決議/映射,實作快速訪問

          優先級最高,

            主要用于主機之間(IP和主機名)的映射/決議關系

        (2)DNS客戶端組態檔/etc/resolv.conf

            DNS客戶端組態檔,主要用于設定DNS服務器的IP和域名,還包含了主機域名的搜索順序等等,這個檔案是由域名決議器使用的組態檔,

            主要用與匹配DNS服務器

         (3) 網卡組態檔/etc/sysconfig/network-scripts/ifcfg-ens33

              可以在網卡組態檔中定義DNS1,DNS2

  

            生效順序 1 hosts檔案 2 網卡組態檔 3 /etc/resolv.conf

 

二、域名

  1.域名概念

      網路是基于 TCP/IP 協議進行通信和連接的,每一臺主機都有一個唯一的標識(固定的 IP 地址),用以區別在網路上成千上萬個用戶和計算機,

    為了保證網路上每臺計算機的 IP 地址的唯 一性,用戶必須向特定機構申請注冊,分配 IP 地址

    2.域名分配

      為了保證地址唯一性,用戶協議向特地給機構申請注冊,分配IP地址網路中的地址

      兩套方案: ① IP地址系統 ② 域名地址系統

 

    (1)面試例子

        阿里云域名申請(未申請成功不可使用,會被封)

        1.準備材料

        2.查看并申請域名

        3.付款  

        4.備案

 

三、web基礎

    1.web概念

        (1)網頁

           純文本格式檔案 撰寫語言為HTML,在用戶的瀏覽器中被“翻譯”成網頁形式顯示出來,

        (2)網站

           由多個頁面構成的,每個網頁之間互相連接,通過超鏈接方式連接,

        (3)域名

          瀏覽網頁時輸入的網址,例如:www.baidu.com

        (4)HTTP/HTTPS

          HTTP是傳輸網頁的通信協議,而HTTPS是安全傳輸的通信協議

           

         (5)URL

          萬維網使用統一資源定位符來標志萬維網上的各種檔案,并使每個檔案在整個因特網的范圍內具有唯一的識別符號URL,

             

         (6)HTML

          撰寫網頁的語言,使用HTML超文本標記語言

         (7)超鏈接

            將多個網頁連接起來,可以互相切換,可以指定各種網頁,只需加入url地址

          (8)發布

            將制作好的網頁上傳到服務器供用戶訪問的程序,部署上云端,申請域名與IP地址映射,方便用戶訪問,

    

   2.Web版本    

      (1)Web1.0

          以編輯為特征,網站提供給用戶的內容是編輯處理后的,然后用戶閱讀網站提供的內容 這個程序是網站到用戶的單向行為

      (2)Web2.0

           更注重用戶的互動作用,用戶既是網站內容的消費者(瀏覽者),也是網站內容的制造者 加強了網站與用戶之間的互動,

             網站內容基于用戶提供,網站的諸多功能也由用戶參與建設,實作了網站與用戶雙向的交流與參與

          Web2.0特征 用戶分享、以興趣為聚合點的社群、開放的平臺,活躍的用戶

    

   3.靜態頁面 與動態頁面

      (1)靜態頁面

            使用HTML撰寫,是簡單的單向輸出的展示型網站,功能少無法互動,沒有資料庫作為支撐,

            每個靜態網頁都有一個url,而且url沒有?,因為沒有資料庫,更新資料很麻煩,靜態網頁每個網頁

            都是單獨存在,內容穩定,方便搜索,沒有互動瀏覽速度快,開啟速度快,

          

       (2)動態網頁

            動態網頁url不是固定的,可以進行互動,功能比較多,例如登錄注冊基礎功能,而且url中由?是動態頁面的識別符號

            更新資料快,維護簡單,會生成不同檔案,  

 

 

四、HTTP

   1.HTTP概念

      HTTP超文本傳輸協議是互聯網上應用最為廣泛的一種網路協議,它是基于TCP協議的應用層傳輸協議,簡單來說就是客戶端和服務端進行資料傳輸的一種規則,

   2.HTTP版本

      (1)HTTP 0.9

        1991,原型版本,功能簡陋,只有一個命令GET,只能回應HTML格式,已被淘汰,

       (2)HTTP 1.0

        每個TCP連接只能發送一個請求,發送資料完畢,連接就關閉,如果還要請求其他資源,就必須再新建 一個連接引入了POST命令和HEAD命令頭資訊

        是 ASCII 碼,后面資料可為任何格式,服務器回應時會告訴客戶端,資料是什么格式,

      (3)HTTP 1.1

        持久連接,即TCP連接默認不關閉,可以被多個請求復用,不用宣告Connection: keep-alive,對于同一個域名,大多數瀏覽器允許同時建立6

        個持久連接引入了管道機制,即在同一個TCP連接里,客戶端可以同時發送多個請求,進一步改進了HTTP協議的效率

   3.HTTP1.0和HTTP1.l之間的區別 

        (1) 快取處理

            在HTTP1.0中主要使用header里的If-Modified-Since,Expires來做為快取判斷的標準,HTTP1.1則引入了更多的快取控制策略

            例如Entitytag,If-Unmodified-Since,If-Match,If-None-Match等更多可供選擇的快取頭來控制快取策略,

        (2)帶寬優化及網路連接的使用

            HTTP1.0中,存在一些浪費帶寬的現象,例如客戶端只是需要某個物件的一部分,而服務器卻將整個物件送過來了,

            并且不支持斷點續傳功能,HTTP1.1則在請求頭引入了range頭域,它允許只請求資源的某個部分,即回傳碼是206 (Partial Content) ,

            這樣就方便了開發者自由的選擇以便于充分利用帶寬和連接

         (3)錯誤通知的管理

            在HTTP1.1中新增了24個錯誤狀態回應碼,如409 (Conflict)表示請求的資源與資源的當前狀態發生沖突;410(Gone)表示

            服務器上的某個資源被永久性的洗掉

         (4)Host頭處理

            在HTTP1.0中認為每臺服務器都系結一個唯一的IP地址,因此,請求訊息中的RZ并沒有傳遞主機名(hostname),但隨著虛擬主機技術的發展,

            在一臺物理服務器上可以存在多個虛擬主機(Multi-homed web Servers),并且它們共享一個Ie地址,

            HTTP1.1的請求訊息和回應訊息都應支持

            Host頭域,且請求訊息中如果沒有inost頭域會報告一個錯誤(400 Bad Request )

         (5)長連接

            HTTP1.1支持長連接〈PersistentConnection)和請求的流水線(Pipelining)處理,在一個TCP連接上可以傳送多個HTT請求和回應,

            減少了建立和關閉連接的消耗和延遲,在HTTP1.1中默認開啟connection:keep-alive,一定程度上彌補了HTTP1.0每次請求都要創建連接的缺點

     4.HTTPS 協議

          (1)HTTPS

              就是安全版的HTTP,目前大型網站基本實作全站解決安全問題

          (2)HTTPS特點

              HTTP和HTTPS使用的是不同的連接方式,埠不同,前者是80,后者是443

              HTTPS可以有效的防止運營商劫持,解決了防劫持的一個大問題

              HTTPS 實作程序降低用戶訪問速度,但經過合理優化和部署,HTTPS 對速度的影響還是可以接受的

              HTTP協議運行在TCP之上,所有傳輸的內容都是明文,HTTPS運行在SSL/TLS之上,SSL/TLS運行 在TCP之上,所有傳輸的內容都經過加密的

              HTTPS協議需要到CA申請證書,一般免費證書很少,需要交費

 

     5.HTTP 請求格式

         (1)GET 方式

               請求行 請求的方式 請求的資源路徑 請求的版本協議號

              請求頭(描述資訊/標準化資訊)

                 Accept:客戶端可以接受的資料型別 Accept-Language:客戶端可以接受的語言型別

                User-Agent:瀏覽器的資訊 Accpect-Encoding:客戶端可以接受的編碼格式

                Host:表示請求的ip和埠號 Connection:告訴服務器請求連接如何處理

                Keep-Alive:通知服務器回傳資料不要馬上關閉,保持一小段的連接 Closed:馬上關閉

         (2)POST 請求方式

               請求行 請求的方式 請求的資源路徑 請求的協議的版本號

               請求頭

                Accept:客戶端可以接受的資料型別 Accept-Language:客戶端可以接受的語言型別

                Referer:表示請求發起時,瀏覽器地址欄中的地址 User-Agent:瀏覽器的資訊

                Content-Type:發送的資料型別 Content-Length:發送的資料長度

              請求體:就是發送給服務器的資料

      6.GET 與POST 區別

         (1)語意上的區別

               Get向服務器請求資料,依照HTTP協議,get 是用來請求資料,

               Post向服務器發資料,依照HTTP協議,Post的語意是向服務器添加資料,也就是說按照Post的語意,該操作是會修改服務器上的資料

         (2)服務器請求的區別

              Get請求是可以被快取,示例: 訪問百度,訪問的方式就是GET,此時訪問后的內容會緩被存在瀏覽器中,短時間再次訪問,

                其實是拿到的瀏覽器中的快取內容 另外Get請求只能接收ASCII碼的回復

               Post請求是不可以被快取的,對于Post方式提交表單,重繪頁面瀏覽器會彈出提示框“是否重新提交表單”,

                Post可以接收二進制等各種資料形式,所以如果要上傳檔案一般用Post請求

         (3)引數放請求頭和請求體的差別

              Get請求通常沒有請求體(當然這也是可以由程式猿心情改變的),在TCP傳輸中只需傳輸一次(而不是一個包), 所以Get請求效率相對高,

               Post請求將資料放在請求體中,而實際傳輸中,會先傳輸完請求頭,再傳輸請求體,是分為兩次傳輸的(而不是兩個包),

                Post請求頭會比Get更小(一般不帶引數),請求頭更容易在一個TCP包中完成傳輸,更何況請求頭中有Content-Length的標識,

                可以更好地保證Http包的完整性,

      

     7.HTTP狀態碼

          (1)正常狀態碼和例外狀態碼

              當使用瀏覽器訪問某一個URL,會根據處理情況回傳相應的處理狀態 通常正常的狀態碼為2xx,3xx(如200)

               如果出現例外會回傳4xx,5xx(如404)

          (2)狀態碼

              狀態碼首位     已定義范圍   分類

               1xx      100-101    資訊提示

               2xx         200-206    成功

               3xx      300-305    重定向

               4xx      400-415   客戶端錯誤

               5xx        500-505   服務器錯誤

          (3)生產環境常見的HTTP狀態碼

              訊息        描述

              200          OK     請求成功(其后是對GET和POST請求的應答檔案)

                 301     Moved Permanently 請求的永久頁面跳轉

              403       Forbidden   禁止訪問該頁面

              404       Not Found   服務器無法找到被請求的頁面

              500     Internal Server Error  內部服務器錯誤

              502     Bad Gateway     無效網關

              503      Service Unavailable   當前服務不可用

              504      Gateway Timeout   網關請求超時

 

      8.HTTP協議請求流程

           程序:用戶輸入URL客戶端獲取到埠及主機名后,客戶端利用DNS決議域名,首先客戶端的瀏覽器會先找自身的快取,如果有決議結束,如果沒有客戶端    ·             會去找host檔案,如果host檔案沒有的話,客戶端會去找本地的DNS快取服務器,本地的DNS快取服務器沒有的話,快取服務器會去找根域,根域                         沒有,會回傳一個.com.然后本地快取服務器會去找頂級域,頂級域沒有的話會回傳baidu.com.,然后本地快取服務器會去找二級域,二級域決議完                    后會回傳客戶端,

              客戶端決議到IP地址后會通過TCP的三次握手與服務器建立連接

      9.HTTP狀態

          (1)無狀態

              當網頁的內容沒有改變,那么就是無狀態,例子:今天寫了一個100內加減的shell腳本,第二天還是100內加減的shell腳本,

          (2)有狀態

              當網頁的內容有所改變,那么就是有狀態,例子:今天寫了100內加減的shell腳本,第二天又寫了一遍,然后又寫了500以內加減法,

     

      10.cookie和session擴展

          (1)功能

              cookie和session都為了實作的是http的短期的持久化(記憶體/快取方式,查詢快、效率比較高)cookie 是快取在用戶端(client)瀏覽器中的(默認快取一                     天),當下次客戶端通過同一個瀏覽器訪問客戶端的時候,會優先讀取cookie中的快取資訊,向服務端進行請求,同時服務端收到客戶端請求的時                候,讀取到cookie檔案,知道客戶端之前找的是服務器A處理的任務,為了省事兒,省資源,干脆直接講請求直接再交給服務器A處理 

            (2)區別

                cookie 省服務器性能 session 更安全,為后面服務、集群、功能優化做鋪墊,具體解釋了怎么解決HTTP無狀態協議的持久化/存盤,

                cookie是再客戶端,seesion是在服務端

 

  

五、總結

       web基礎可以分為網頁和網站,網頁是組成網站的基礎,HTML超文本標記語言是撰寫網頁的語言,現如今使用的是HTML1.0和2.0,網頁則使用靜態網頁和動態網頁的結合,現如今使用DNS決議地址,讓公網和私網可以通信,當網頁可以決議,狀態碼可以反應出相應的狀態,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555260.html

標籤:其他

上一篇:UE開發使用Rider時快取干爆C盤的解決方案

下一篇:返回列表

標籤雲
其他(161052) Python(38230) JavaScript(25496) Java(18240) C(15237) 區塊鏈(8271) C#(7972) AI(7469) 爪哇(7425) MySQL(7253) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4594) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2435) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) 功能(1967) HtmlCss(1966) Web開發(1951) C++(1940) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • web基礎與HTTP協議

    目錄 一、DNS 二、域名 三、web基礎 四、HTTP 五、總結 摘要:簡單敘述web基礎,網頁的概念,域名決議,域名結構,HTML超文本傳輸語言,cookie和session擴展 一、DNS 1.DNS概念 內網和外網無法通信,為了內網可以和外網通信,dns技術解決問題,可以將公網和私網互相通信 ......

    uj5u.com 2023-06-16 07:52:35 more
  • UE開發使用Rider時快取干爆C盤的解決方案

    我們在使用Rider開發UE時,Ride會為每一個專案創建一個解決方案快取,如果開幾個新專案寫測驗demo,我們的C盤會逐漸捉急 ![默認情況下](https://img2023.cnblogs.com/blog/2003597/202306/2003597-20230615183008462-89 ......

    uj5u.com 2023-06-16 07:52:10 more
  • 讀資料壓縮入門筆記05_字典轉換

    為了找到資料流的理想分詞,我們需要有某種方法來處理現有的和那些還沒有遇到的符號,并能以一種高效的方式將兩者合并為盡可能長的符號集 ......

    uj5u.com 2023-06-16 07:51:51 more
  • 網路傳輸中的重要引數-簡單的網路畫像

    [toc] 在前兩篇博文對[帶寬](https://www.cnblogs.com/mapleumr/p/17469513.html)、[時延與丟包率](https://www.cnblogs.com/mapleumr/p/17464980.html)有了初步的認識后(引流引流哈哈哈),我們已經可以 ......

    uj5u.com 2023-06-16 07:51:21 more
  • SQL查詢面試題,會這些基本夠用了

    ### 寫在前面 我已經記不起來,有多久沒更新文章了。 5月中旬我還在上班,中旬以后一系列發生的事情,真的遠遠超出了可承受范圍,只能硬著頭皮面對! 我是誰,我應該是誰,又能怎樣,只能向前····· ### 資料庫實體 #### class表 ![image.png](https://p6-jueji ......

    uj5u.com 2023-06-16 07:51:03 more
  • 大促質量備戰之三化戰役:“常態化、精細化、一體化”

    大促作為JD一年兩度的盛事,質量備戰是不可或缺的重要環節。每逢大促都是一次大型的聯合戰役,在這種戰役中,不僅有各種“海陸空”技術爭奇斗艷,還會讓我們的技術視野變得更寬闊,讓我們協同變得更默契,所謂以戰養兵。測驗團隊作為質量備戰團隊,沉淀了“常態化”、“精細化”、“一體化”的三化備戰策略,希望與君共勉... ......

    uj5u.com 2023-06-16 07:50:00 more
  • 【OpenCV】在VS2017中配置OpenCV開發環境

    開發環境:OpenCV4.5.4、VS2017、x64 打開屬性管理器:視圖-->其他視窗-->屬性管理器 找到 Release|x64,配置OpenCV環境主要操作的物件就是**Micorosoft.Cpp.x64.user** ![](https://img2023.cnblogs.com/bl ......

    uj5u.com 2023-06-15 08:27:30 more
  • 嘿,不升級CodeGeeX插件,哪來時間摸魚?

    今天,[CodeGeeX 1.1.2](https://codegeex.cn/)版正式在JetBrains IDEs中上線。和VSCode中的[CodeGeeX2.0](https://codegeex.cn/)升級一樣,新版本在JetBrains IDEs中帶來“[Ask CodeGeeX](h ......

    uj5u.com 2023-06-15 08:21:46 more
  • 在MacM1上運行ChatGLM-6B推理

    1. 簡介 ChatGLM 6B是清華大學和智譜合作的一個62億引數的大語言模型。基于清華的GLM模型開發。和Meta的LLaMA模型還不是一種模型。 由于LLaMA缺乏中文語料,中文能力不佳。在中文大模型中,ChatGLM 6B引數較小,運行硬體要求較低。而表現可謂出色。所以這里作為一個基礎模型先 ......

    uj5u.com 2023-06-15 08:21:36 more
  • SRE 的作業介紹

    哈嘍大家好,我是咸魚 今天看到了一篇很不錯的文章,作者是一名 SRE 工程師,在 Shopee 作業,base 新加坡 分享出來給大家看看 作者:卡瓦邦噶 原文鏈接:https://www.kawabangga.com/posts/4481 **原文如下:** 有很多人問過我想了解一下 SRE 這個 ......

    uj5u.com 2023-06-15 08:21:27 more