Web基礎(chǔ)

?1、簡(jiǎn)述

? ?網(wǎng)絡(luò)的七層協(xié)議從上到下:7、應(yīng)用層 6、表示層 5、會(huì)話層 4、傳輸層 3、網(wǎng)絡(luò)層 2、數(shù)據(jù)鏈路層 1、物理層。其中高層(即7、6、5、4層)定義了應(yīng)用程序的功能,下面3層(即3、2、1層)主要面向通過(guò)網(wǎng)絡(luò)的端到端的數(shù)據(jù)流。

? 常見(jiàn)協(xié)議有:IP/TCP協(xié)議,F(xiàn)TP協(xié)議,SMTP及POP3協(xié)議等等。


2、Http相關(guān)

? ? 協(xié)議是指計(jì)算機(jī)通信網(wǎng)絡(luò)中兩臺(tái)計(jì)算機(jī)之間進(jìn)行通信所必須共同遵守的規(guī)定或規(guī)則,超文本傳輸協(xié)議(HTTP)是一種通信協(xié)議,它允許將超文本標(biāo)記語(yǔ)言(HTML)文檔從Web服務(wù)器傳送到客戶(hù)端的瀏覽器。

? ? http協(xié)議是無(wú)狀態(tài)的,無(wú)狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒(méi)有記憶能力,服務(wù)器不知道客戶(hù)端是什么狀態(tài)。從另一方面講,打開(kāi)一個(gè)服務(wù)器上的網(wǎng)頁(yè)和你之前打開(kāi)這個(gè)服務(wù)器上的網(wǎng)頁(yè)之間沒(méi)有任何聯(lián)系

打開(kāi)瀏覽器,輸入url,瀏覽網(wǎng)頁(yè)的過(guò)程的原理:

輸入U(xiǎn)RL后,瀏覽器給Web服務(wù)器發(fā)送了一個(gè)Request請(qǐng)求, Web服務(wù)器接到Request后進(jìn)行處理,生成相應(yīng)的Response,然后發(fā)送給瀏覽器, 瀏覽器解析Response中的HTML,展示網(wǎng)頁(yè)。

統(tǒng)一資源定位器(url):

URL(Uniform Resource Locator) 地址用于描述一個(gè)網(wǎng)絡(luò)上的資源,? 基本格式如下

? ? ? ? ? schema://host[:port#]/path/.../[?query-string][#anchor]

scheme? ? ? ? ? ? ? 指定低層使用的協(xié)議(例如:http, https, ftp)

host? ? ? ? ? ? ? ? ? HTTP服務(wù)器的IP地址或者域名

port#? ? ? ? ? ? ? ? HTTP服務(wù)器的默認(rèn)端口是80,這種情況下端口號(hào)可以省略。如果使用了 ? ? ? ? ? ? ? ? ? ? ? ? 別的端口,必須指明,例如 http://www.cnblogs.com:8080/

path? ? ? ? ? ? ? ? ? 訪問(wèn)資源的路徑

query-string? ? ? 發(fā)送給http服務(wù)器的數(shù)據(jù)

anchor-? ? ? ? ? ? 錨

? ?Http協(xié)議定義了很多與服務(wù)器交互的方法,最基本的有4種,分別是GET,POST,PUT,DELETE. 一個(gè)URL地址用于描述一個(gè)網(wǎng)絡(luò)上的資源,而HTTP中的GET, POST, PUT, DELETE就對(duì)應(yīng)著對(duì)這個(gè)資源的查,改,增,刪4個(gè)操作。 我們最常見(jiàn)的就是GET和POST了。GET一般用于獲取/查詢(xún)資源信息,而POST一般用于更新資源信息.。

GET和POST的區(qū)別

1. GET提交的數(shù)據(jù)會(huì)放在URL之后,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,如EditPosts.aspx?name=test1&id=123456.? POST方法是把提交的數(shù)據(jù)放在HTTP包的Body中.

2. GET提交的數(shù)據(jù)大小有限制(因?yàn)闉g覽器對(duì)URL的長(zhǎng)度有限制),而POST方法提交的數(shù)據(jù)沒(méi)有限制.

3. GET方式需要使用Request.QueryString來(lái)取得變量的值,而POST方式通過(guò)Request.Form來(lái)獲取變量的值。

4. GET方式提交數(shù)據(jù),會(huì)帶來(lái)安全問(wèn)題,比如一個(gè)登錄頁(yè)面,通過(guò)GET方式提交數(shù)據(jù)時(shí),用戶(hù)名和密碼將出現(xiàn)在URL上,如果頁(yè)面可以被緩存或者其他人可以訪問(wèn)這臺(tái)機(jī)器,就可以從歷史記錄獲得該用戶(hù)的賬號(hào)和密碼.

Response 消息中的第一行叫做狀態(tài)行,由HTTP協(xié)議版本號(hào), 狀態(tài)碼, 狀態(tài)消息 三部分組成。

狀態(tài)碼用來(lái)告訴HTTP客戶(hù)端,HTTP服務(wù)器是否產(chǎn)生了預(yù)期的Response.。

狀態(tài)碼:

1XX? 提示信息 - 表示請(qǐng)求已被成功接收,繼續(xù)處理

2XX? 成功 - 表示請(qǐng)求已被成功接收,理解,接受

3XX? 重定向 - 要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的處理

4XX? 客戶(hù)端錯(cuò)誤 -? 請(qǐng)求有語(yǔ)法錯(cuò)誤或請(qǐng)求無(wú)法實(shí)現(xiàn)

5XX? 服務(wù)器端錯(cuò)誤 -? 服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求

常見(jiàn)狀態(tài)碼:

200 -該請(qǐng)求被成功地完成,所請(qǐng)求的資源發(fā)送回客戶(hù)端

302 -重定向,新的URL會(huì)在response 中的Location中返回,瀏覽器將會(huì)自動(dòng)使用新的URL發(fā)出新的Request

400 Bad Request ?-客戶(hù)端請(qǐng)求與語(yǔ)法錯(cuò)誤,不能被服務(wù)器所理解

403 Forbidden -服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)

404 Not Found -請(qǐng)求資源不存在(輸錯(cuò)了URL)

JSON:

? ?JSON(JavaScript Object Notation),類(lèi)似于XML,是一種數(shù)據(jù)交換格式,比如Java產(chǎn)生了一個(gè)數(shù)據(jù)想要給JavaScript,則除了利用XML外,還可以利用JSON;JSON相比XML的優(yōu)勢(shì)是表達(dá)起來(lái)很簡(jiǎn)單;

? ?注意:JSON并不是一個(gè)文檔格式,沒(méi)有*.json的文檔,一般JSON格式的文檔存在txt中,而XML可以是一個(gè)標(biāo)準(zhǔn);

?JSON有兩種數(shù)據(jù)結(jié)構(gòu):

(1)Map,也稱(chēng)為對(duì)象;{....}——{'key1':'value1','key2':'value2'}

(2)Array;[......] —— ['arr1','arr2','arr3'];

總結(jié):

(1)JSON的數(shù)據(jù)結(jié)構(gòu)只有兩種;

(2)可以嵌套表示,比如Array中可以嵌套Object等;

(3)記?。篛bject是以{}表示,Array是以[? ]表示;


JSON的解析方式:

一、傳統(tǒng)解析方式

通過(guò)解析json字符串,得到對(duì)象。

通過(guò)解析json字符串,得到Arraylist

二、利用GSON解析

3、html相關(guān)

一、Html簡(jiǎn)介? ??

HTML 是一種標(biāo)記語(yǔ)言? ? ? 忽略大小寫(xiě),語(yǔ)法寬松? ??

使用 HTML 標(biāo)記和元素,可以:1、控制頁(yè)面和內(nèi)容的外觀 2、發(fā)布聯(lián)機(jī)文檔3、使用 HTML 文檔中插入的鏈接檢索聯(lián)機(jī)信息 ?4\創(chuàng)建聯(lián)機(jī)表單,收集用戶(hù)的信息、執(zhí)行事務(wù)等等 ? ?5、插入動(dòng)畫(huà) 6、開(kāi)發(fā)幫助文件 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

HTML 標(biāo)記的格式組成:

<ELEMENT ATTRIBUTE = value>

ELEMENT:? 元素 - 標(biāo)識(shí)標(biāo)記

ATTRIBUTE: 屬性 - 描述標(biāo)記

value:? ? 值? - 分配給屬性的內(nèi)容


二、超鏈接

<A HREF = protocol://host.domain:port/path/filename> Hypertext </A>

三、在HTML文檔中使用特殊字符(跟XML的一樣)

&gt; ? ==== >? ? greater 大于 ? ? ?&lt ? ==== <? ? litter 小于

&de;?? ==== ≥???? 大于等于 ? ? ? ? ? ?&le; ? ==== ≤???? litter equal

&ne; ? ==== ≠???? not equal不等 ? ? &zwj; ?? ====?????? 空格

&quot ==== ”???? 雙引 ? ? ? ? ? ? ? &apos ==== ‘???? 單引號(hào)

&copy; ==== ????? 版權(quán)符號(hào) ? ? ? ? ? ?&reg ?==== ????? 注冊(cè)商標(biāo)

&amp ?==== &???? 與符號(hào)

4、javascript相關(guān)

一、什么是 JavaScript?

JavaScript 是一門(mén)跨平臺(tái)、面向?qū)ο蟮膭?dòng)態(tài)的弱類(lèi)型的輕量級(jí)解釋型語(yǔ)言,是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶(hù)端腳本語(yǔ)言。應(yīng)用于 HTML 文檔能夠在網(wǎng)站上提供動(dòng)態(tài)的交互能力,他不同于 Java。簡(jiǎn)單說(shuō)就是基于瀏覽器處理 HTML 文檔,實(shí)現(xiàn)各種網(wǎng)頁(yè)特效,響應(yīng)用戶(hù)的各種操作,為網(wǎng)頁(yè)添加動(dòng)態(tài)效果,提升用戶(hù)操作體驗(yàn),比如圖片滾動(dòng)播放效果,點(diǎn)擊登錄按鈕彈出對(duì)話框,鼠標(biāo)移入移出動(dòng)畫(huà),表單提交數(shù)據(jù)驗(yàn)證等。

?二、為什么要學(xué)習(xí) JavaScript?

JavaScript 通常被稱(chēng)為 JS,他發(fā)明的目的,就是作為瀏覽器的內(nèi)置腳本語(yǔ)言,為網(wǎng)頁(yè)開(kāi)發(fā)者提供操控瀏覽器的能力,他可以讓網(wǎng)頁(yè)呈現(xiàn)出各種特殊效果,為用戶(hù)提供友好的互動(dòng)體驗(yàn)。隨著 Ajax 技術(shù)的出現(xiàn),前端可以在不刷新頁(yè)面的情況下和后端進(jìn)行數(shù)據(jù)交換,更新頁(yè)面數(shù)據(jù),jQuery 等庫(kù)的盛行讓 JS 編寫(xiě)變得異常簡(jiǎn)單,Bootstrap 框架更讓前端的成本無(wú)限降低,大大提高了前端開(kāi)發(fā)的效率,JS 在前端領(lǐng)域前景非常廣闊。

隨著 Node 的發(fā)布,使得 JS 不僅可以運(yùn)行在前端,還可以運(yùn)行在服務(wù)器上。這對(duì) JS 來(lái)說(shuō)是一次質(zhì)的突破,Node.js 項(xiàng)目使得 JS 可以用于開(kāi)發(fā)服務(wù)器端的大型項(xiàng)目,網(wǎng)站的前后端都用 JS 開(kāi)發(fā)已經(jīng)稱(chēng)為了現(xiàn)實(shí)。

至此 JS 除了可以被瀏覽器解析,也可以作為后端語(yǔ)言使用,越來(lái)越多的應(yīng)用程序,將 JS 作為內(nèi)嵌的腳本語(yǔ)言,可以用來(lái)構(gòu)建移動(dòng)端 APP,開(kāi)發(fā) HTML 游戲,可以不依賴(lài)于瀏覽器,構(gòu)建桌面應(yīng)用程序。

可以預(yù)期,最終只使用 JS 這一種語(yǔ)言,就可以開(kāi)發(fā)出適應(yīng)不同平臺(tái)(包括桌面端,服務(wù)器端,手持端)的程序。在 Jeef Atwood 發(fā)布的博客中,他提出了著名的“Atwood定律”,即“任何能夠用 JavaScript 實(shí)現(xiàn)的應(yīng)用程序,最終都必將用 JavaScript 實(shí)現(xiàn)”。

相比學(xué)習(xí)其他語(yǔ)言,JS 很容易學(xué)習(xí)。只要有瀏覽器,就能運(yùn)行 JS 程序,只要有文本編輯器,就可以編寫(xiě) JS 代碼。不用安裝復(fù)雜的 IED(集成開(kāi)發(fā)環(huán)境)和編譯器。JS 的語(yǔ)法相對(duì)簡(jiǎn)單一些,本身的語(yǔ)法不是特別多,而且語(yǔ)言靈活,完全可以只用簡(jiǎn)單的命令,完成大部分的操作。

雖然 JS 的核心語(yǔ)法不難學(xué)習(xí),但是要真正學(xué)透還不是一件容易的事,JS 其實(shí)是很復(fù)雜的,隨著學(xué)習(xí),越能體會(huì)到他的強(qiáng)大。JS 要發(fā)揮作用,必須與其他組件配合,這些外部組件五花八門(mén),而且數(shù)量龐大,涉及到了網(wǎng)絡(luò)應(yīng)用的各個(gè)方面,比如編輯器組件,QQ 空間提供的關(guān)注組件等,要掌握他們并非易事,必須下狠功夫。JS 語(yǔ)言有一些設(shè)計(jì)缺陷,在一些地方會(huì)出現(xiàn)怪異的運(yùn)行結(jié)果,各主流瀏覽器對(duì)于 JS 的支持不盡相同,兼容性是最讓人頭疼的事情,學(xué)習(xí) JS,很大一部分時(shí)間都是用來(lái)搞清除哪些地方有陷阱。

三、JavaScript 組成

JS 由三部分組成:

ECMAScript:也叫解釋器,充當(dāng)翻譯角色,這是 JS 的核心部分。

DOM:文檔對(duì)象模型(Document Object Model)。DOM 賦予了 JS 操作 HTML 的能力,即 document 操作。

BOM:瀏覽器對(duì)象模型(Browser Object Model)。BOM 賦予了 JS 操作瀏覽器的能力,即 window 操作。?

四、JavaScript 用法

HTML 中的腳本必須位于標(biāo)簽之間??梢栽?HTML 文檔中放入不限數(shù)量的腳本。腳本可位于 HTML 的 或 中,或者同時(shí)存在于這兩個(gè)部分中。通常的做法是把函數(shù)放在? 中,或者放在頁(yè)面底部,這樣不會(huì)干擾頁(yè)面的內(nèi)容?!∫部梢园涯_本保存在外部文件中,文件擴(kuò)展名為 .js,外部文件通常包含被多個(gè)網(wǎng)頁(yè)使用的代碼。注意:在使用外部腳本時(shí),腳本內(nèi)不能包含標(biāo)簽。

5、編寫(xiě) JavaScript 的流程

首先,也是最重要的,先要搞清楚網(wǎng)頁(yè)效果的實(shí)現(xiàn)原理,要達(dá)到什么目的,需要對(duì)哪些屬性做出修改,以及用戶(hù)的哪些操作,通過(guò)用戶(hù)的某種操作,一步步的構(gòu)思 JS 實(shí)現(xiàn)的方法。

然后 HTML+CSS 布局頁(yè)面。

接著選擇需要修改的屬性的名稱(chēng)(id 或 class)。

再根據(jù)用戶(hù)的操作,選擇相應(yīng)的觸發(fā)事件。

最后,在事件中,根據(jù)第一步的構(gòu)思,編寫(xiě) JS 代碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,612評(píng)論 19 139
  • Web測(cè)試基礎(chǔ) I. 如何開(kāi)展Web測(cè)試 Web測(cè)試的對(duì)象 Web的頁(yè)面元素 Web的業(yè)務(wù)邏輯 Web的數(shù)據(jù)行為 ...
    厲鉚兄閱讀 4,462評(píng)論 4 62
  • DOM+ 概念: 1)HTML DOM定義了用于HTML的一系列標(biāo)準(zhǔn)的對(duì)象,以及訪問(wèn)和處理HTML文檔的標(biāo)準(zhǔn)方法 ...
    南山伐木閱讀 408評(píng)論 1 0
  • 圖標(biāo)素材: Material Icons Iconfont Icons8 FLATICON iconmonstr ...
    fengfancky閱讀 461評(píng)論 0 0
  • 2017-09-29 17:00 在安裝RabbitMQ服務(wù)器包時(shí),服務(wù)器不會(huì)默認(rèn)啟動(dòng)為守護(hù)進(jìn)程。在系統(tǒng)啟動(dòng)時(shí)默認(rèn)...
    小小人喃閱讀 1,037評(píng)論 0 1

友情鏈接更多精彩內(nèi)容