Web服務器基礎介紹

目錄

Web服務器基礎介紹

一、HTML是什么?

二、靜態網頁和動態網頁

1、靜態網頁

2、動態網頁

3、動態網頁語言

PHP

JSP

Python

Ruby

三、HTTP協議

1、HTTP協議是什么?

2、HTTP請求訪問的方法

3、GET與POST比較

GET:

POST:

4、HTTP狀態碼

5、HTTP請求訪問的完整過程

6、請求報文

7、響應報文


Web服務器基礎介紹

一、HTML是什么?

超文本標記語言,編程語言,主要負責實現頁面的結構;HTML叫:超文本標記語言,是一種規范,也是一種標準,通過標記符號來標記要顯示的網頁中的各個部分。網頁本身是一種文本文件,通過在文本文件中添加標記符號,可以告訴瀏覽器如何顯示其中的內容。

HTML文件可以使用任何能夠生成txt文件的文本編輯器來編輯,生成超文本標記語言文件,只用修改文件名后綴為html或者htm即可

二、靜態網頁和動態網頁

1、靜態網頁

在網站設計中,純粹HTML格式的網頁通常被稱為靜態網頁,靜態網頁標準的HTML文件,他的文件拓展名是.htm、.html。靜態網頁是網站建設的基礎,早期的網站一般都是由靜態網頁制作的。靜態網頁也可以出現各種動態的效果,如.GIF格式的動畫、FLASH、滾動字幕等。這些“動態效果”只是視覺上的,與下面將要介紹的動態網頁是不同的概念。

2、動態網頁

所謂的動態網頁,是指跟靜態網頁相對的一種網頁編程技術。靜態網頁,隨著HTML代碼的生成,頁面的內容和顯示效果就基本上不會發生變化了——除非是修改頁面代碼。而動態網頁則不然,頁面代碼雖然沒有變,但是顯示的內容卻是可以隨著時間、環境或者數據庫操作的結果而發生改變的。動態網頁URL的后綴不是.htm、.html、.shtml、.xml等靜態網頁的常見網頁制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式為后綴,并且在動態網頁網址中有一個標志性的符號——“?”。
動態網頁是基本的html語法規范與Java、PHP、C#等高級程序設計語言、數據庫編程等多種技術的融合,以期實現對網站內容和風格的高效、動態和交互式的管理。因此,從這個意義上來講,凡是結合了HTML以外的高級程序設計語言和數據庫技術進行的網頁編程技術生成的網頁都是動態網頁。

3、動態網頁語言

早期的動態網頁

主要采用通用網關接口 CGI(Common Gateway Interface)技術,雖然 CGI 技術已經發展成熟而且功能強大, 但由于編程困難、效率低下、修改復雜,所以有逐漸被新技術取代的趨勢

PHP


即 Hypertext Preprocessor(超文本預處理器),它是當今 Internet 上最為火熱的腳本語言,其語法借鑒了 C、Java、PERL 等語言,但只需要很少的編程知識你就能使用 PHP 建立一個真正交互的 Web 站點。

JSP


即 Java Server Pages(Java 服務器頁面),它是由 Sun Microsystem 公司于 1999 年 6 月推出的新技術,是基于 Java Servlet 以及整個 Java 體系的 Web 開發技術。

Python


是一種面向對象、跨平臺的動態類計算機程序設計語言,最初被設計用于編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用于獨立的大型項目開發。

Ruby


是一種簡單快捷的面向對象(面向對象程序設計)腳本語言,在 20 世紀 90年代由日本人松本行弘(Yukihiro Matsumoto) 開發,遵守GPL 協議和Ruby License。它的靈感與特性來自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 語言。

三、HTTP協議

1、HTTP協議是什么?

HTTP協議采用了請求/響應模型。客戶端向服務器發送一個請求,請求頭包含請求的方法、URL、協議版本、以及包含請求修飾符、客戶信息和內容的類似于MIME的消息結構。

服務器以一個狀態行作為響應,響應的內容包括消息協議的版本,成功或者錯誤編碼加上服務器信息、實體元信息以及可能的實體內容。

注意:HTTP已經演化出了很多版本,他們中的大部分都是向下兼容的

HTTP/0.9:已過時。只接受 GET 一種請求方法,沒有在通訊中指定版本號,且不支持請求頭。由于該版本不支持 POST 方法,所以客戶端無法向服務器傳遞太多信息。
HTTP/1.0:這是第一個在通訊中指定版本號的 HTTP 協議版本,至今仍被廣泛采用,特別是在代理服務器中。
HTTP/1.1:引入了持久連接,即TCP連接默認不關閉,可以被多個請求復用,能很好地配合代理服務器工作。還支持管道方式機制,即在同一個TCP連接里面,客戶端可以同時發送多個請求,以便降低線路負載,提高傳輸速度。
HTTP/2.0:完全多路復用,在一個連接里,客戶端和瀏覽器都可以同時發送多個請求或回應,而且不用按照順序一一對應。引入了頭信息壓縮機制,使用gzip或compress壓縮后再發送。支持服務端推送,允許服務器未經請求,主動向客戶端發送資源。

2、HTTP請求訪問的方法

HTTP支持幾種不同的請求命令,這些命令都被稱為HTTP方法

每條HTTP請求報文都包含一個方法,告訴服務器要執行什么動作,包括:獲取一個頁面,運行一個網關程序,刪除一個文件等。

最常用的方法是GET、POST、PUT。

①GET? ? ? ? ? ?對服務器資源獲取的簡單請求

②PUT? ? ? ? ? ?向服務器提交數據,以修改數據

③DELETE? ? 刪除服務器上的某些資源

④POST? ? ? ? 用于發送包含用戶提交數據的請求

⑤HEAD? ? ? ? 請求頁面的首部,獲取資源的元信息

GET請求會向數據庫發索取數據的請求,從而來獲取信息,該請求不會產生副作用。無論進行多少次操作,結果都是一樣的

PUT請求是向服務器端發送數據的,從而改變信息,無論進行多少次PUT操作,其結果并沒有不同,與GET不同

DELETE請求顧名思義,就是用來刪除某一個資源的。

3、GET與POST比較

GET:

①從指定的服務器上獲取數據

②請求可以被緩存

③請求會被保存在瀏覽器的瀏覽記錄里

④請求有長度的限制

⑤主要用于獲取數據

⑥查詢的字符串不會顯示在url后綴中,不安全

POST:

①提交數據給指定服務器處理

②請求不能被緩存

③請求不會保存在瀏覽器的瀏覽記錄里

④請求沒有長度限制

⑤查詢的字符串不會顯示url中比較安全

4、HTTP狀態碼

HTTP狀態碼是用來表示網頁服務器HTTP響應狀態的3位數字代碼,當瀏覽器請求某一url時,服務器根據處理情況返回響應的處理狀態。

狀態碼首位已定義范圍分類
1xx100-101?? ?信息提示
2xx200-206?? ?成功
3xx300-305?? ?重定向
4xx400-415客戶端錯誤
5xx500-505服務器錯誤

http常見狀態碼:

狀態碼?? ?功能描述
200?? ?一切正常
301?? ?永久重定向,將緩存記錄在瀏覽器中
302?? ?臨時重定向,沒有緩存,每次都要重定向
401?? ?用戶名或密碼錯誤
403?? ?禁止訪問(客戶端IP地址被拒絕)
404?? ?請求的文件不存在
414?? ?請求URL頭部過長
500?? ?服務器內部錯誤
502?? ?無效網關
503?? ?當前服務不可用
504?? ?網關請求超時

5、HTTP請求訪問的完整過程

1.建立連接

2.接收請求

3.處理請求

4.訪問資源

5.構建響應報文

6.發送響應報文

7.記錄日志

6、請求報文

①請求行:請求行由請求方法,url以及協議版本三部分組成。

②請求頭:請求頭為請求報文添加了一些附加信息,由名\值對組成,每行一對,名和值之間使用冒號分隔

③空行:請求頭部的最后會有一個空行,表示請求頭部結束,接下來為請求體,這一行非常重要,必不可少。

④請求體:請求體是請求提交的參數,get方法已經在url中指明了參數,所以提交時沒有數據。post方法提交的參數在請求體中。

常用的請求頭:

請求頭描述
Host接受請求的服務器地址,可以是Ip:端口號,也可以是域名
User-Agent發送請求的應用程序名稱
Connection指定與連接相關的屬性,如Connection:Keep-Alive
Accept-Charset通知服務端可以發送的編碼格式
Accept-Encoding通知服務端可以發送的數據壓縮格式
Accept-Language?通知服務端可以發送的語言

7、響應報文

①狀態行:狀態行由協議版本,狀態碼,狀態碼描述三部分組成。

②響應頭:響應頭與請求頭部類似,為響應報文添加了一些附加信息。

③空行:響應頭部的最后會有一個空行,表示響應頭部結束。

④響應體:服務器返回的相應HTML數據,瀏覽器對其解析后顯示頁面

常見相映頭:

響應頭描述
Server服務器應用程序軟件的名稱和版本
Content-Type響應正文的類型(是圖片還是二進制字符串)
Content-Length?響應正文長度
Content-Charset響應正文使用的編碼
Content-Encoding響應正文使用的數據壓縮格式
Content-Language?響應正文使用的語言

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696110.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696110.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696110.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux網絡編程(三-UDP協議)

目錄 一、UDP概述 二、UDP的首部格式 三、UDP緩沖區 四、基于UDP的應用層協議 五、常見問題 一、UDP概述 UDP(User Datagram Protocol,用戶數據協議報)是傳輸層協議,提供不可靠服務,其特點包括: 無連接:知道對端…

CSP-202309-3-梯度求解

CSP-202309-3-梯度求解 作為一個算法小白,本人第一次接觸大模擬的題,本題的算法參考自:【CSP】202309-3 梯度求解 解題思路 1.輸入處理 getchar();:從標準輸入讀取一個字符。這里它的作用可能是用來“吃掉”(消耗&a…

Kafka_04_Topic和日志

Kafka_04_Topic和日志 Topic/PartitionTopicPartition 日志存儲存儲格式日志清理刪除壓縮 Topic/Partition Topic/Partition: Kafka中消息管理的基礎單位 Topic和Partition并不實際存在(僅邏輯上的概念) 如: Topic和Partition關系 // 每個日志文件可對應多個日志分段, 其還可…

緩存篇—緩存擊穿

在很多場景下,我們的業務通常會有幾個數據會被頻繁地訪問,比如秒殺活動,這類被頻地訪問的數據被稱為熱點數據。 如果緩存中的某個熱點數據過期了,此時大量的請求訪問了該熱點數據,就無法從緩存中讀取,直接…

《UE5_C++多人TPS完整教程》學習筆記22 ——《P23 記錄加入的玩家(Couting Incoming Players)》

本文為B站系列教學視頻 《UE5_C多人TPS完整教程》 —— 《P23 記錄加入的玩家(Couting Incoming Players)》 的學習筆記,該系列教學視頻為 Udemy 課程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻譯版,UP主&#xff…

前端面試問題(jwt/布局/vue數組下標/扁平化/菜單樹形/url api/新版本)

前端面試問題(jwt/布局/vue數組下標/扁平化/菜單樹形/url api/新版本) 1. jwt鑒權邏輯 前端 JWT 鑒權邏輯通常涉及在發起請求時攜帶 JWT,并在接收到響應后處理可能的授權問題。 1. 用戶登錄: 用戶提供憑證: 用戶在登錄界面輸入用戶名和密碼…

如何使用Docker部署MongoDB并結合內網穿透實現遠程訪問本地數據庫

文章目錄 前言1. 安裝Docker2. 使用Docker拉取MongoDB鏡像3. 創建并啟動MongoDB容器4. 本地連接測試5. 公網遠程訪問本地MongoDB容器5.1 內網穿透工具安裝5.2 創建遠程連接公網地址5.3 使用固定TCP地址遠程訪問 正文開始前給大家推薦個網站,前些天發現了一個巨牛的 …

2024最佳住宅代理IP服務商有哪些?

跨境出海已成為了近幾年的最熱趨勢,大批量的企業開始開拓海外市場,而海外電商領域則是最受歡迎的切入口。新興的tiktok、Temu,老牌的Amazon、Ebay,熱門的Etsy、Mecari等等都是藍海一片。跨境入門并不難,前期的準備中不…

深入理解文件查看命令:cat、more、less、tail、head

在Linux系統中,有許多命令用于查看文件的內容,其中包括cat、more、less、tail和head。這些命令提供了不同的方式來瀏覽文本文件,適用于各種查看需求。在本篇博客中,我們將深入介紹這些命令,并通過示例演示它們的用法。…

Spring Boot打war包部署到Tomcat,訪問頁面404 !!!

水善利萬物而不爭,處眾人之所惡,故幾于道💦 文章目錄 Spring Boot打war包部署到Tomcat,訪問頁面404 !!!解決辦法:檢查Tomcat版本和Jdk的對應關系,我的Tomcat是6.x&#x…

Sping基礎篇----掌握Sping的控制反轉/依賴注入的概念【實戰案例總結】

作為一名對技術充滿熱情的學習者,我一直以來都深刻地體會到知識的廣度和深度。在這個不斷演變的數字時代,我遠非專家,而是一位不斷追求進步的旅行者。通過這篇博客,我想分享我在某個領域的學習經驗,與大家共同探討、共…

SMMU介紹

SMMU(System Memory Management Unit)是一種硬件設備,其作用是在虛擬地址空間和物理地址空間之間提供地址轉換的功能。它通常用于處理虛擬化環境中的 I/O 設備,例如虛擬機中的設備訪問或者容器環境中的設備隔離。 SMMU 的主要作用…

KVM虛擬機的克隆方式

話不多說,直接上操作 首先確定我們要克隆的模板機器,這樣可以方便我們后續克隆許多機器 IP獲取最好就是dhcp模式,這樣克隆出來的機器就不需要自己再去改ip了 確定需要克隆的模板機以后,先關機再執行克隆操作 virsh shutdown ser…

【SiamFC】《Fully-Convolutional Siamese Networks for Object Tracking》

ECCV 2016 Workshops 文章目錄 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metrics5.2 The OTB-13 benchmark5.3 The VOT benchmarks5.4 Dataset size 6 Conclusion(own)/ Future wo…

Android系統啟動流程

android的啟動流程是從底層開始進行的,具體如下所示: Android是基于Linux內核的系統,Android的啟動過程主要分為兩個階段,首先是Linux內核的啟動,然后是Android框架的啟動。 可以將Andorid系統的啟動流程分為以下五個…

【QT 5 +Linux下軟件桌面快捷方式+qt生成軟件創建桌面圖標+學習他人文章+第二篇:編寫桌面文件.desktop】

【QT 5 Linux下軟件桌面快捷方式qt生成軟件創建桌面圖標學習他人文章第二篇:編寫桌面文件.desktop】 1、前言2、實驗環境3、自我學習總結-本篇總結1、新手的疑問,做這件事目的2、了解.desktop3、三個關鍵目錄以及文件編寫1、目錄:/opt/2、目錄…

【鴻蒙 HarmonyOS 4.0】開發工具安裝

一、準備開發環境 1.1、安裝IDE 鴻蒙應用開發需要使用配套的IDE——HUAWEI DevEco Studio。 DevEco Studio基于IntelliJ IDEA Community(IDEA社區版)構建,為鴻蒙應用提供了一站式開發環境,集成了開發、運行、調試以及發布應用的…

【leetcode刷題之路】面試經典150題(3)——哈希表+區間

文章目錄 5 哈希表5.1 【哈希表】贖金信5.2 【數學】同構字符串5.3 【數學】單詞規律5.4 【哈希表】有效的字母異位詞5.5 【哈希表】字母異位詞分組5.6 【雙指針】兩數之和5.7 【數學】快樂數5.8 【哈希表】219. 存在重復元素 II5.9 【數學】最長連續序列 6 區間6.1 【數學】匯…

Stable Diffusion 模型分享:AstrAnime(Astr動畫)

本文收錄于《AI繪畫從入門到精通》專欄,專欄總目錄:點這里。 文章目錄 模型介紹生成案例案例一案例二案例三案例四案例五 下載地址 模型介紹 AstrAnime 是一個動漫模型,畫風色彩鮮明,擅長繪制漂亮的小姐姐。 條目內容類型大模型…

fastjson解析自定義get方法導致空指針問題

背景 為了在日志中把出入參打印出來,以便驗證鏈路和排查問題,在日志中將入參用fastjson格式化成字符串輸出,結果遇到了NPE。 問題復現 示例代碼 public static void main(String[] args) {OrganizationId orgId new OrganizationId();N…