搜尋
首頁web前端js教程restfulhttp的詳細介紹

restfulhttp的詳細介紹

Jul 24, 2017 pm 02:20 PM
httprestful講解

        HTTP(HyperText Transfer Protocol)是一套電腦透過網路進行通訊的規則。電腦專家設計出HTTP,使HTTP客戶(如Web瀏覽器)能夠從HTTP伺服器(Web伺服器)請求資訊和服務,HTTP目前協定的版本是1.1.HTTP是一種無狀態的協議,無狀態是指Web瀏覽器和Web伺服器之間不需要建立持久的連接,這意味著當一個客戶端向伺服器端發出請求,然後Web伺服器返回回應(response),連接就被關閉了,在伺服器端不保留連接的有關訊息.HTTP遵循請求(Request)/應答(Response)模型。 Web瀏覽器向Web伺服器發送請求,網路伺服器處理請求並傳回適當的應答。所有HTTP連接都被建構成一套請求和應答。
HTTP使用內容類型,是指Web伺服器向網頁瀏覽器傳回的檔案都有與之相關的類型。所有這些類型在MIME Internet郵件協定上模型化,也就是網頁伺服器告訴網頁瀏覽器該檔案所具有的種類,是HTML文件、GIF格式影像、聲音檔案或獨立的應用程式。大多數網頁瀏覽器都擁有一系列可設定的輔助應用程序,它們告訴瀏覽器應該如何處理網頁的伺服器發送過來的各種內容類型。
HTTP通訊機制是在一次完整的HTTP通訊過程中,Web瀏覽器與Web伺服器之間將完成下列7個步驟:
(1)    建立TCP連線
在HTTP工作開始之前,Web瀏覽器首先要透過網路與Web伺服器建立連接,該連接是透過TCP來完成的,該協定與IP協定共同建構Internet,即著名的TCP/IP協定族,因此Internet又被稱為TCP/IP網路。 HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層協議的連接,因此,首先要建立TCP連接,一般TCP連接的端口號是80
(2)    Web瀏覽器向Web伺服器發送請求命令
一旦建立了TCP連接,Web瀏覽器就會向Web伺服器發送請求命令
例如:GET/sample/hello .jsp HTTP/1.1
(3)    Web瀏覽器發送請求頭資訊
瀏覽器發送其請求命令之後,也要以頭資訊的形式向Web伺服器發送一些別的信息,之後瀏覽器發送了一空白行來通知伺服器,它已經結束了該頭訊息的發送。
(4)    Web伺服器回應
客戶機向伺服器發出請求後,伺服器會用戶端回傳應答,
HTTP/1.1 200 OK
#應答的第一部分是協定的版本號碼和應答狀態碼
(5)    Web伺服器發送回應頭資訊
就像用戶端會隨其要求傳送關於自身的訊息一樣,伺服器也會隨同應答向使用者發送關於它自己的資料及被請求的文件。
(6)    Web伺服器傳送資料
Web伺服器向瀏覽器傳送頭資訊後,它會傳送一個空白行來表示頭訊息的傳送到此為結束,接著,它就以Content-Type應答頭資訊所描述的格式發送使用者所請求的實際資料
(7)    Web伺服器關閉TCP連線
一般情況下,一旦Web伺服器向瀏覽器發送了請求數據,它就要關閉TCP連接,然後如果瀏覽器或伺服器在其頭訊息加入了這行程式碼
Connection:keep-alive
##TCP連接在發送後將仍然保持開啟狀態,於是,瀏覽器可以繼續透過相同的連線發送請求。保持連線節省了為每個請求建立新連線所需的時間,也節省了網路頻寬。
    
HTTP請求格式
當瀏覽器向Web伺服器發出請求時,它向伺服器傳遞了一個資料區塊,也就是請求訊息,HTTP請求資訊由3部分組成:
l   請求方法URI協定/版本
l   請求頭(Request Header)
l   請求正文
#下面是一個HTTP請求的範例:
GET/sample.jspHTTP/1.1
Accept:image/gif.image/jpeg,*/*
Accept-Language:zh-cn
#Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept- Encoding:gzip,deflate
 
username=jinqiao&password=1234
 
(1)       請求方法URI協議/版本
請求的第一行是「方法URL議/版本」:GET/sample.jsp HTTP/1.1
#以上程式碼中「GET」代表請求方法,「/sample.jsp」表示URI,「HTTP/1.1代表協議和協議的版本。
根據HTTP標準,HTTP請求可以使用多種請求方法。例如:HTTP1.1支援7種請求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet應用中,最常用的方法是GET和POST。
URL完整地指定了要存取的網路資源,通常只要給出相對於伺服器的根目錄的相對目錄即可,因此總是以「/」開頭,最後,協定版本聲明了通訊過程中使用HTTP的版本。
(2) 請求頭(Request Header)
請求頭包含許多相關的客戶端環境和請求正文的有用資訊。例如,請求頭可以聲明瀏覽器所使用的語言,請求正文的長度等。
Accept:image/gif.image/jpeg.*/*
Accept-Language:zh-cn
Connection:Keep-Alive
#Host :localhost
User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
Accept-Encoding:gzip,deflate.
#(3)請求正文
請求頭和請求正文之間是一個空行,這個行非常重要,它表示請求頭已經結束,接下來的是請求正文。請求正文中可以包含客戶提交的查詢字串資訊:
username=jinqiao&password=1234
在以上的範例的HTTP請求中,請求的正文只有一行內容。當然,在實際應用中,HTTP請求正文可以包含更多的內容。
HTTP請求方法我這裡只討論GET方法與POST方法
l         GET方法
GET方法是預設的HTTP請求方法,我們日常用GET方法來提交表單數據,然而用GET方法提交的表單數據只經過了簡單的編碼,同時它將作為URL的一部分向Web伺服器發送,因此,如果使用GET方法來提交表單數據就存在著安全隱患上。例如
Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB
#從上面的URL請求中,很容易就可以辯認出表單提交的內容。 (?之後的內容)另外由於GET方法提交的資料是作為URL請求的一部分所以提交的資料量不能太大
l         POST方法
POST方法是GET方法的一個替代方法,它主要是向Web伺服器提交表單數據,尤其是大批量的數據。 POST方法克服了GET方法的一些缺點。透過POST方法提交表單資料時,資料不是作為URL請求的一部分而是作為標準資料傳送給Web伺服器,這就克服了GET方法中的資訊無法保密和資料量太小的缺點。因此,出於安全的考慮以及對用戶隱私的尊重,通常在表單提交時採用POST方法。
  從程式設計的角度來講,如果使用者透過GET方法提交數據,則資料存放在QUERY_STRING環境變數中,而POST方法提交的資料則可以從標準輸入流中取得。
HTTP回應與HTTP請求相似,HTTP回應也由3個部分構成,分別是:
l 協定狀態版本代碼描述
l 回應頭(Response Header)
l 回應正文
下面是一個HTTP回應的範例:
HTTP/1.1 200 OK
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:23:42 GMT
Content-Length:112
 
<html><head>
<title>HTTP响应示例<title>
</head>
<body>
Hello HTTP!
</body>
</html>协议状态代码描述HTTP响应的第一行类似于HTTP请求的第一行,它表示通信所用的协议是HTTP1.1服务器已经成功的处理了客户端发出的请求(200表示成功):
HTTP/1.1 200 OK响应头(Response Header)响应头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等:
   Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:13:33 GMT
Content-Type:text/html
Last-Moified:Mon,6 Oct 2003 13:23:42 GMT
Content-Length:112
 响应正文响应正文就是服务器返回的HTML页面:
  <html><head>
<title>HTTP响应示例<title>
</head>
<body>
Hello HTTP!
</body>
</html>
回應頭和正文之間也必須用空白行分隔。  
l        HTTP應答碼
   HTTP應答碼也稱為狀態碼,它反映了Web伺服器處理HTTP請求狀態。 HTTP應答碼由3位數字構成,其中首位數字定義了應答碼的類型:
   1XX-信息類(Information),表示收到Web瀏覽器請求,正在進一步的處理中
   2XX-成功類別(Successful),表示使用者請求被正確接收,理解和處理例如:200 OK
      3XX-重定向類別(Redirection),表示請求沒有成功,客戶必須採取進一步的動作。
      4XX-客戶端錯誤(Client Error),表示客戶端提交的請求有錯誤ound,意味著請求中所引用的文件不存在。
      5XX-伺服器錯誤(Server Error)表示伺服器無法完成對請求的處理:如500
      對我們Web開發人員來說掌握HTTP應答碼有助於提高Web應用程式偵錯的效率和準確性。
 
安全連線
One of the most common uses of Web applications is e-commerce, which can use Web server-side programs to enable people to shop online. It needs to be pointed out that by default, sending information over the Internet is not secure. If someone happens to How bad would it be if a message you sent to a friend was intercepted and he could open it and imagine it contained your credit card number? Fortunately, many web servers and web browsers have the ability to create secure connections. , so that they can communicate safely.
The most common standard for providing secure connections over the Internet is the Secure Sockets layer (SSl) protocol. The SSL protocol is an application layer protocol (like HTTP) used to exchange data on the Web in a secure manner. SSL uses a public key encoding system. Essentially, this means that each party in the business has a public and a private key. When one party encodes using the other party's public key, only the person with the matching key can decode it. Simply put, public key encoding provides a secure method for exchanging data between two parties. After the SSL connection is established, both the client and the server exchange public keys and verify them before making business contact. Once both parties Once the keys are verified, data can be exchanged securely.
  • GET
    Get the resource by requesting the URI

  • POST,
    Used to add new content

  • PUT
    Used to modify a certain content

  • ##DELETE,

    Delete a certain content

  • CONNECT,

    is used for proxy transmission, such as using SSL

  • ##OPTIONS
  • Ask which

    methods can be executed

  • PATCH,
  • Partial document changes


  • PROPFIND, (wedav)
  • View properties


  • PROPPATCH, (wedav)
  • Set properties


  • MKCOL, (wedav)
  • Create a collection (folder)


  • COPY, (wedav)
  • Copy


  • MOVE, (wedav)
  • Move


  • LOCK, (wedav )
  • Lock


  • UNLOCK (wedav)
  • Unlock


  • TRACE
  • For remote diagnosis server


  • HEAD
  • Similar to GET, but does not return body information. It is used to check whether the object exists and get the metadata of the object


以上是restfulhttp的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
C和JavaScript:連接解釋C和JavaScript:連接解釋Apr 23, 2025 am 12:07 AM

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

從網站到應用程序:JavaScript的不同應用從網站到應用程序:JavaScript的不同應用Apr 22, 2025 am 12:02 AM

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python vs. JavaScript:比較用例和應用程序Python vs. JavaScript:比較用例和應用程序Apr 21, 2025 am 12:01 AM

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C/C在JavaScript口譯員和編譯器中的作用C/C在JavaScript口譯員和編譯器中的作用Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在行動中:現實世界中的示例和項目JavaScript在行動中:現實世界中的示例和項目Apr 19, 2025 am 12:13 AM

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript和Web:核心功能和用例JavaScript和Web:核心功能和用例Apr 18, 2025 am 12:19 AM

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

了解JavaScript引擎:實施詳細信息了解JavaScript引擎:實施詳細信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python vs. JavaScript:學習曲線和易用性Python vs. JavaScript:學習曲線和易用性Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),