国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

[ASP.NET 教程] 一. Web基礎(chǔ)

2024-07-10 12:56:34
字體:
供稿:網(wǎng)友
注冊會員,創(chuàng)建你的web開發(fā)資料庫,注:本教程基于.net framework 1.1,使用c#語言描述,并假設(shè)讀者了解html和c#語法,jscript客戶端腳本,懂得基本的iis配置。這些不屬于本教程范圍,請參考相關(guān)書籍或教程。

1. http協(xié)議

除了tcp/ip協(xié)議,http可以說是最重要,且使用最多的網(wǎng)絡(luò)協(xié)議了。本節(jié)簡要介紹一下http協(xié)議的工作原理。

假設(shè)現(xiàn)在有一個html文件:http.html, 存放在web服務(wù)器上,其url為www.myweb.com/http.html ,文件內(nèi)容為:

html 代碼:

<html>
<head>
<title>http.html</title>
</head>
<body>
hello, http
</body>
</html>

現(xiàn)在,一個用戶通過ie訪問該地址,ie首先將此地址的域名通過dns轉(zhuǎn)換為一個ip地址,然后通過一個web服務(wù)器開放的端口(默認為80,不為80需在域名后加上“:端口號”,例如www.myweb.com:81)與其連接, 然后傳送一個類似這樣的http請求(使用flashget等下載軟件下載文件時,在詳細信息里也可以看到類似的信息):

代碼:

get /http.html http/1.1
host: www.myweb.com
accept: */*
user-agent: mozilla/4.0 (compatible; msie.6.0; windows nt 5.1)
pragma: no-cache
cache-control: no-cache
connection: close
[空行]

請求的第一行為請求內(nèi)容, 表示通過get方法向服務(wù)器請求資源,/http.html為請求資源名稱,http/1.1 表示使用http協(xié)議,版本1.1。然后接下來的幾行稱為請求信息的標頭(header),其中描述了請求的一些其他信息,比如客戶端瀏覽器標識等。最后一個空行表示請求結(jié)束。

當web服務(wù)器接收到該請求時,服務(wù)器檢查所請求的資源是否有效,且是否有相應(yīng)的權(quán)限。如果沒有問題,則服務(wù)器會傳回類似如下的http響應(yīng)信息:

代碼:

http/1.1 200 ok
server: microsoft-iis/5.0
date: thursday, march 31, 2005 17:15:23 gmt
content-type: text/html
content-length: 88
[空行]
<html>
<head>
<title>http.html</title>
</head>
<body>
hello, http
</body>
</html>


其中第一行的“200”是一個狀態(tài)碼,表示服務(wù)器成功完成該請求,如果不成功會返回其他狀態(tài)碼。content-type表示返回的數(shù)據(jù)類型,content-length表示返回的數(shù)據(jù)長度。空行表示標頭結(jié)束,下面則是瀏覽器根據(jù)請求返回的數(shù)據(jù)內(nèi)容,這里是http.html的文件內(nèi)容,瀏覽器解析html源代碼,將web頁面呈現(xiàn)給用戶,到這里就完成了一次成功的http通信。

以上內(nèi)容是web通信的基礎(chǔ),就和windows消息機制一樣,你可能不會用到它,但是你必須了解它,你得知道那些高級的東西隱藏了哪些低級的內(nèi)容,這樣對你理解和使用那些高級的東西都有非常大的幫助:)。
2. html form

前面的http.html文件是一個最簡單的靜態(tài)html頁面,但作為一個web程序,它實在是太簡陋了,它不接受用戶輸入,永遠顯示一樣的內(nèi)容。我們需要能夠根據(jù)用戶輸入來返回相應(yīng)的數(shù)據(jù)。

看下面的html代碼:


html 代碼:
<html>
<head>
<title>form.html</title>
</head>
<body>
<form method=”get”>
<input type=”text” name=”p” />
<input type=”submit” value=”submit” />
</form>
</body>
</html>


觀察這段代碼,其中有一個html form,其內(nèi)容包括在<form>和</form>之間, 其中有一個提交按鈕(<input type=”submit” value=”submit” />),當用戶點擊該按鈕時,瀏覽器將html form中的所有輸入提交給web服務(wù)器,form標簽的method屬性指定了提交的方式,這里為get,這個get對應(yīng)http請求中的get請求方法,form中的輸入均以查詢字符串的方式附加在url上, 在文本框里輸入一個字符串,比如“form”,然后觀察瀏覽器的地址欄,會變成類似 http://www.myweb.com/form.html?p=form ,這是因為瀏覽器發(fā)出了這樣的get請求:


代碼:
get /form.html?p=form http/1.1
...
...
[空行]


假如<form>標簽的method屬性為”post”,即令瀏覽器使用post方法發(fā)送該請求,當使用post方法時,用戶的輸入并不是通過url來傳輸?shù)模菫g覽器將內(nèi)容放在post請求的標頭之后發(fā)送給web服務(wù)器的:

代碼:
post /form.html http/1.1
...
...
content-type: application/x-www-form-urlencoded
content-length: 6
[空行]
p=form

然后web服務(wù)器就可以通過訪問post請求發(fā)送的數(shù)據(jù)來處理用戶輸入。

瀏覽器將用戶輸入使用get或者post方法發(fā)送給web服務(wù)器,這個過程稱為“回發(fā)(postback)”。這個概念相當重要,在web應(yīng)用程序中經(jīng)常涉及到回發(fā)。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 玛沁县| 阳东县| 夏津县| 安福县| 临夏县| 武陟县| 石棉县| 青河县| 浪卡子县| 浦县| 洪江市| 丰镇市| 灵武市| 诸城市| 衢州市| 阿鲁科尔沁旗| 荆州市| 马公市| 宁晋县| 德兴市| 绿春县| 天祝| 鄂托克前旗| 新绛县| 万年县| 新民市| 武清区| 寻甸| 大港区| 英山县| 错那县| 巴塘县| 泰顺县| 达拉特旗| 石阡县| 巴彦淖尔市| 宜春市| 江阴市| 阳信县| 沈阳市| 崇文区|