nodejs 基礎 + http

CRUD應用:建立、讀取、更新、刪除

AngularJS雙向數據綁定
your name:<input type="text" ng-model="yourname" placeholder="world">
hello {{yourname || 'world'}}!

AngularJS應用三個組成部分:
模板:HTML/CSS
應用程序邏輯Logic和行爲Behavior
模型數據Data :經過做用域來保持數據模型與視圖界面UI的雙向同步

服務特性:
底層服務:依賴注入,XHR,緩存,URL路由和瀏覽器抽象服務
能夠擴展和添加本身特定的應用程序

nodejs

1.下載 angular-phonecat 文件 在e:盤

2.git bash默認路徑也是在e:盤
3.用 git bash  輸入
mkdir scott 回車
ls 回車 --》看到當前目錄的全部文件
cd scott
ls
cd imooc/beginning (scott文件裏的文件)
li
node server.js -->運行 server.js


URL:定位
URI:標識

打開node的URL文檔 http://nodejs.cn/api/url.html

git bash-->
node -->
url-->
1.url.parse('http://imooc.com/course/list') -->
顯示:Url {
  protocol: 'http:', 底層協議
  slashes: true,
  auth: null,
  host: 'imooc.com', 網址
  port: null, 端口 默認爲8080
  hostname: 'imooc.com', 主機名
  hash: null,
  search: null, 查詢字符串參數
  query: null,
  pathname: '/course/list', 路徑名
  path: '/course/list', 路徑
  href: 'http://imooc.com/course/list'  超連接
}

2.url.parse('http://imooc.com:8080/course/list?from=scott&course=node#floor1') -->

顯顯示 Url {
  protocol: 'http:',
  slashes: true,
  auth: null,
  host: 'imooc.com:8080',
  port: '8080',
  hostname: 'imooc.com',
  hash: '#floor1',
  search: '?from=scott&course=node',
  query: 'from=scott&course=node',
  pathname: '/course/list',
  path: '/course/list?from=scott&course=node',
  href: 'http://imooc.com:8080/course/list?from=scott&course=node#floor1' }

3.url.format({
protocol: 'http:',
  slashes: true,
  auth: null,
  host: 'imooc.com:8080',
  port: '8080',
  hostname: 'imooc.com',
  hash: '#floor1',
  search: '?from=scott&course=node',
  query: 'from=scott&course=node',
  pathname: '/course/list',
  path: '/course/list?from=scott&course=node',
  href: 'http://imooc.com:8080/course/list?from=scott&course=node#floor1'
}) -->
顯示http://imooc.com:8080/course/list?from=scott&course=node#floor1

4.url.resolve('http://imooc.com','/course/list') -->
顯示 http://imooc.com/course/list


5.url.parse('http://imooc.com:8080/course/list?from=scott&course=node#floor1',

true)
-->
顯示 Url {
  protocol: 'http:',
  slashes: true,
  auth: null,
  host: 'imooc.com:8080',
  port: '8080',
  hostname: 'imooc.com',
  hash: '#floor1',
  search: '?from=scott&course=node',
  query: {from:'scott',course:'node'},   不一樣地方 變成了對象
  pathname: '/course/list',
  path: '/course/list?from=scott&course=node',
  href: 'http://imooc.com:8080/course/list?from=scott&course=node#floor1' }

6.url.parse('//imooc.com/course/list',true,true)  -->
Url {
  protocol: null,
  slashes: true,
  auth: null,
  host: 'imooc.com',
  port: null,
  hostname: 'imooc.com',
  hash: null,
  search: '',
  query: {},
  pathname: '/course/list',
  path: '/course/list',
  href: '//imooc.com/course/list' }

協議 端口號 主機 主機名 哪些是hash   來標識惟一的特定資源

url的做用:識別路徑 訪問數據

HTTP的重要性:
http:就是協議
流程:
http客戶端發起請求,建立端口
http服務器在端口監聽客戶端請求
http服務器向客戶端返回狀態和內容
具體以下:
1.Chrome 搜索自身的DNS緩存
2.搜索操做系統自身的DNS緩存(瀏覽器沒有找到緩存或緩存已經失效)
3.讀取本地的HOST文件
4.瀏覽器發起一個DNS的一個系統調用
5.瀏覽器得到域名對應的IP地址後,發起HTTP 「三次握手」
6.TCP/IP鏈接創建起來後,瀏覽器就能夠向服務器發送HTTP請求了使用了,好比說:用http的

GET方法請求一個根域裏的一個域名,協議能夠採http1.0的一個協議
7.服務器端接受到了這個請求,根據路徑參數,通過後端的一些處理以後,把處理的一個結果

的數據返回給瀏覽器。若是是百度的頁面,就回把完整的hTML頁面代碼返回給瀏覽器
8.瀏覽器拿到了百度的完整的HTML頁面代碼,在解析和渲染這個頁面的時候,裏面的JS CSS

圖片靜態資源,一個HTTP請求,都是須要通過上面主要的七個步驟。
9.瀏覽器根據拿到的資源進行渲染顯示

http1.0的請求方法:
GET 讀取數據
POST 提交數據
PUT 更新內容
DELETE 刪除
HEAD 發出指定資源的請求
TRACE
OPTIONS

客戶端 --》 服務器 --》

瀏覽器向服務器發起請求的流程:
接受請求後

chrome://net-internals/#dns 查看瀏覽器的DNS緩解記錄

HTTP進階
什麼是回調
案例:
function learn(something){
    console.log(something)
}

function we(callback,something){
    something += ' is cool'
    callback(something)
}
we(learn,'nodejs')

we(function(something){
    console.log(something)
},'jade')

顯示:
nodejs is cool
jade is cool


什麼是同步/異步
同步:就執行一個任務後再執行下一個任務,只能按順序執行

異步:每一個任務都有幾個回調函數



什麼的單線程/多線程
單線程:單個進行
多線程:同時進行多個

什麼是I/O:數據的進/出


什麼是阻塞/非阻塞 :
什麼是事件:鼠標點擊是一個事件
什麼是事件驅動:
什麼是基於事件驅動的回調
什麼是事件循環

什麼是做用域:全局 局部
訪問函數的能力

什麼是上下文:
是調用當前代碼的引用 this指向調用這個方法的對象
全局變量使用this,指向函數擁有者
構造函數使用this,指向新構建好的函數,實例對象。




html

相關文章
相關標籤/搜索