HTTP請求示例

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),表示客戶端提交的請求有錯誤 例如:404 NOT
Found,意味著請求中所引用的文檔不存在。
5XX-服務器錯誤(Server Error)表示服務器不能完成對請求的處理:如 500
對于我們Web開發人員來說掌握HTTP應答碼有助于提高Web應用程序調試的效率和準確性。
安全連接
Web應用最常見的用途之一是電子商務,可以利用Web服務器端程序使人們能夠網絡購物,需要指出一點是,缺省情況下,通過Internet發送信息是不安全的,如果某人碰巧截獲了你發給朋友的一則消息,他就能打開它,假想在里面有你的信用卡號碼,這會有多么糟糕,幸運的是,很多Web服務器以及Web瀏覽器都有創立安全連接的能力,這樣它們就可以安全的通信了。
通過Internet提供安全連接最常見的標準是安全套接層(Secure Sockets layer,SSl)協議。SSL協議是一個應用層協議(和HTTP一樣),用于安全方式在Web上交換數據,SSL使用公開密鑰編碼系統。從本質講,這意味著業務中每一方都擁有一個公開的和一個私有的密鑰。當一方使用另一方公開密鑰進行編碼時,只有擁有匹配密鑰的人才能對其解碼。簡單來講,公開密鑰編碼提供了一種用于在兩方之間交換數據的安全方法,SSL連接建立之后,客戶和服務器都交換公開密鑰,并在進行業務聯系之前進行驗證,一旦雙方的密鑰都通過驗證,就可以安全地交換數據。

轉載于:https://www.cnblogs.com/zongyl/p/8037793.html

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

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

相關文章

Bootstrap——可拖動模態框(Model)

還是上一個小項目&#xff0c;o(╥﹏╥)o&#xff0c;要實現點擊一個div或者button或者一個東西然后可以彈出一個浮在最上面的彈框。網上找了找&#xff0c;發現Bootstrap的Model彈出框可以實現該功能&#xff0c;因此學習了一下&#xff0c;實現了基本彈框功能&#xff08;可拖…

mfcc中的fft操作_簡化音頻數據:FFT,STFT和MFCC

mfcc中的fft操作What we should know about sound. Sound is produced when there’s an object that vibrates and those vibrations determine the oscillation of air molecules which creates an alternation of air pressure and this high pressure alternated with low …

leetcode 765. 情侶牽手(并查集)

N 對情侶坐在連續排列的 2N 個座位上&#xff0c;想要牽到對方的手。 計算最少交換座位的次數&#xff0c;以便每對情侶可以并肩坐在一起。 一次交換可選擇任意兩人&#xff0c;讓他們站起來交換座位。 人和座位用 0 到 2N-1 的整數表示&#xff0c;情侶們按順序編號&#xff…

ariel字體_播客第58集:軟件開發人員和freeCodeCamp超級巨星Ariel Leslie

ariel字體On this weeks episode of the freeCodeCamp.org podcast, Abbey interviews Ariel Leslie, a software developer and avid contributor to the freeCodeCamp community.在本周的freeCodeCamp.org播客節目中&#xff0c;Abbey采訪了Ariel Leslie&#xff0c;他是free…

PHP繪制3D圖形

PEAR提供了Image_3D Package來創建3D圖像。圖像或光線在3D空間中按照X、Y 、Z 坐標定位。生成的圖像將呈現在2D空間中&#xff0c;可以存儲為 PNG、SVG 格式&#xff0c;或輸出到Shell。通過Image_3D可以很方便生成一些簡單的3D對象&#xff0c;例如立方體、錐體、球體、文本和…

清除日志的sql

SET NOCOUNT ONDECLARE LogicalFileName sysname,MaxMinutes INT,NewSize INTUSE cms -- 要操作的數據庫名SELECT LogicalFileName cms_log, -- 日志文件名MaxMinutes 10, -- Limit on time allowed to wrap log.NewSize 100 -- 你想設定的日志文件的大小(M)-- Setup / init…

r語言怎么以第二列繪制線圖_用衛星圖像繪制世界海岸線圖-第二部分

r語言怎么以第二列繪制線圖Part I of this blog series is here.本博客系列的第一部分 在這里 。 At the UKHO we are interested in the oceans, the seabed and the coastline — not to mention everything in and on them! In our previous blog, we (the UKHO Data Scien…

javascript創建類_如何在10分鐘內使用JavaScript創建費用管理器

javascript創建類by Per Harald Borgen通過Per Harald Borgen 如何在10分鐘內使用JavaScript創建費用管理器 (How to create an expense organizer with JavaScript in 10 minutes) 讓我們使用ES6和Dropbox API來防止收據變得混亂。 (Let’s use ES6 and the Dropbox API to k…

豆瓣API

Api V2 索引 圖書Api V2 電影Api V2 音樂Api V2 同城Api V2 廣播Api V2 用戶Api V2 日記Api V2 相冊Api V2 線上活動Api V2 論壇Api V2 回復Api V2 我去Api V2 https://developers.douban.com/wiki/?titleapi_v2 搜索圖書 GET https://api.douban.com/v2/book/search參數意義…

leetcode 485. 最大連續1的個數

給定一個二進制數組&#xff0c; 計算其中最大連續1的個數。 示例 1: 輸入: [1,1,0,1,1,1] 輸出: 3 解釋: 開頭的兩位和最后的三位都是連續1&#xff0c;所以最大連續1的個數是 3. 解題思路 遇到0時&#xff0c;將連續1的長度歸零。遇到1時&#xff0c;累加進長度 代碼 c…

HDU Today

經過錦囊相助&#xff0c;海東集團終于度過了危機&#xff0c;從此&#xff0c;HDU的發展就一直順風順水&#xff0c;到了2050年&#xff0c;集團已經相當規模了&#xff0c;據說進入了錢江肉絲經濟開發區500強。這時候&#xff0c;XHD夫婦也退居了二線&#xff0c;并在風景秀美…

JSP基礎--動作標簽

JSP基礎--動作標簽 JSP動作標簽 1 JSP動作標簽概述 動作標簽的作用是用來簡化Java腳本的&#xff01; JSP動作標簽是JavaWeb內置的動作標簽&#xff0c;它們是已經定義好的動作標簽&#xff0c;我們可以拿來直接使用。 如果JSP動作標簽不夠用時&#xff0c;還可以使用自定義標…

整數存儲怎么轉化為浮點數_非整數值如何存儲在浮點數中(以及為什么要浮點數)...

整數存儲怎么轉化為浮點數by Shukant Pal通過Shukant Pal 非整數值如何存儲在浮點數中(以及為什么要浮點數) (How non-integer values are stored in a float (and why it floats)) Did you ever think how computers work on floating-point numbers? I mean — where does …

rcp rapido_Rapido使用數據改善乘車調度

rcp rapidoGiven our last blog post of the series, which can be found here :鑒于我們在該系列中的最后一篇博客文章&#xff0c;可以在這里找到&#xff1a; We thought it would be helpful to explain how we implemented all of the above into an on-ground experimen…

LeetCode 695. Max Area of Island javascript解決方案

題意&#xff1a; 尋找最大島。leetcode.com/problems/ma… 傳入&#xff1a; [[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,0,0,0,0,0,0,0,0], [0,1,0,0,1,1,0,0,1,0,1,0,0], [0,1,0,0,1,1,0,0,1,1,1,0,0], [0,0,0,0,0,0,0,0,0,0,1,0,0], [0…

Mybatis—代理開發和核心配置文件深入

代理開發方式介紹 采用 Mybatis 的代理開發方式實現 DAO 層的開發&#xff0c;這種方式是我們后面進入企業的主流。 Mapper 接口開發方法只需要程序員編寫Mapper 接口&#xff08;相當于Dao 接口&#xff09;&#xff0c;由Mybatis 框架根據接口定義創建接口的動態代理對象&a…

mysql 位操作支持

mysql 支持位操作。 & 位與 &#xff5c; 位或 例如&#xff1a;update car_ins_fee_entity set change_status(change_status | 1) where id12356轉載于:https://www.cnblogs.com/sign-ptk/p/7278225.html

SSRS:之為用戶“NT AUTHORITY\NETWORK SERVICE”授予的權限不足,無法執行此操作。 (rsAccessDenied)...

錯誤信息&#xff1a;為用戶“NT AUTHORITY\NETWORK SERVICE”授予的權限不足&#xff0c;無法執行此操作。 (rsAccessDenied)如圖&#xff1a;解決方案之檢查順序&#xff1a;1.檢查報表的執行服務帳戶。使用“ Reporting Services 配置管理器”。2.檢查數據庫安全 - 登錄名 中…

javascript函數式_如何以及為什么在現代JavaScript中使用函數式編程

javascript函數式by PALAKOLLU SRI MANIKANTA通過PALAKOLLU SRI MANIKANTA In this article, you will get a deep understanding of functional programming and its benefits.在本文中&#xff0c;您將對函數式編程及其好處有深入的了解。 函數式編程簡介 (Introduction To…

飛機上的氧氣面罩有什么用_第2部分—另一個面罩檢測器……(

飛機上的氧氣面罩有什么用This article is part of a series where I will be documenting my journey on the development of a social distancing feedback system for the blind as part of the OpenCV Spatial Competition. Check out the full series: Part 1, Part 2.本文…