2021/08/09 筆記 今天的筆記 ![](https://i.imgur.com/Bvf5rH8.png) Java 物件(Object) 物件也就是類別的實例,也就是說有了類別這張藍圖我們可以在程式中產生許多汽車類別的資料,而這些資料彼此之間不互相影響,每一個皆是獨立的。 物件導向三大特性(封裝、繼承、多型) 封裝 (Encapsulation) 即是將物件內部的資料隱藏起來,只能透過物件本身所提供的介面(interface)取得物件內部屬性或者方法,物件內部的細節資料或者邏輯則隱藏起來,其他物件即無法瞭解此物件的內部細節,若不經過允許之窗口(即此物件提供之方法)便無從更動此物件內之資料。簡白的說,對一件事情只需要理解他的外在就好,不需要了解裡面內部的構造。例如:由先前的例子,我們可以透過getInformation()取得車子資訊,然而我們並不需要知道他是如何取得資訊的。 繼承 (Inheritance) 在某種情況下,一個類別會有「子類別」。子類別比原本的類別(稱為父類別)要更加具體化,也就是說子類別繼承了父類別。例如:計程車(子類別)繼承了汽車(父類別)原有的屬性以及方法,也新增了自己特有的屬性(driverName)。 多型 (Polymorphism) 簡單來說就是相同名稱的方法(Method),多個相同名稱的方法,傳入不同的參數,會執行不同的敘述。多型(Polymorphism)則包含多載(Overloading)和複寫(Overriding)。 多載(Overloading) — 是指說在相同類別中,定義名稱相同,但是參數個數不同,或是參數型態不同的函式,這樣就可以利用參數個數或者參數型態,呼叫到對應的方法。例如:一個計算面積的方法,如果傳入一個參數,就當正方形來算面積;傳入兩個參數,就當成長方形來算面積。 Spring MVC 在Spring的Web MVC框架提供了模型 - 視圖 - 控製器架構以及可用於開發靈活,鬆散耦合的Web應用程序準備的組件。 MVC模式會導致分離的應用程序(輸入邏輯,業務邏輯和UI邏輯)的不同方麵,同時提供這些元素之間的鬆耦合。 M-模型(Model ) 封裝了應用程序的數據和一般他們會組成的POJO。 V-視圖(View) 是負責呈現模型數據和一般它生成的HTML輸出,客戶端的瀏覽器能夠解釋。 C-控製器(Controller ) 負責處理用戶的請求,並建立適當的模型,並把它傳遞給視圖渲染。 ORM ORM,英文叫 Object Relational Mapping, 翻譯成中文為物件關聯對映。 ORM 在網站開發結構中,是在『資料庫』和『 Model 資料容器』兩者之間,簡單來說,它是一個幫助使用者更簡便、安全的去從資料庫讀取資料,因為 ORM 的一個特性為: 透過程式語言(Ruby, Java),去操作資料庫語言( SQL )。 而這也是實作了物件導向的概念,產生的一種工具模式, Angular 是一個基於 TypeScript 的 開源 Web 應用框架 由 Google 的 Angular 團隊以及社群共同領導。 React React(有時叫React.js或ReactJS),是一個為資料提供彩現為HTML視圖的開源JavaScript 庫。React視圖通常採用包含以自訂HTML標記規定的其他組件的組件彩現。React為程式設計師提供了一種子組件不能直接影響外層組件("data flows down")的模型,資料改變時對HTML文件的有效更新,和現代單頁應用中組件之間乾淨的分離。它由Facebook、Instagram和一個由個人開發者和企業組成的社群維護 Vue Vue 是一個新穎的 Javascript 框架,它提供了很多有用的功能來達到漸進增強( progressive enhancement )的策略。與其他的框架不同的是,你可以把 Vue 和既有的 HTML 做整合,這讓你可以像使用插入性替換的函式庫一樣來使用 Vue ,就像使用 JQuery 一樣。 TCP/IP協定 網際網路協議套組(英語:Internet Protocol Suite,縮寫為IPS),是一個網路通訊模型,以及一整個網路傳輸協定家族,為網際網路的基礎通訊架構。 它常被通稱為TCP/IP協定族(英語:TCP/IP Protocol Suite,或TCP/IP Protocols),簡稱TCP/IP。 因為這個協定家族的兩個核心協議,包括TCP(傳輸控制協定)和IP(網際網路協定),為這個家族中最早通過的標準。由於在網路通訊協定普遍採用分層的結構,當多個層次的協定共同工作時,類似計算機科學中的堆疊,因此又被稱為TCP/IP協定棧(英語:TCP/IP Protocol Stack)。這些協定最早發源於美國國防部(縮寫為DoD)的ARPA網項目,因此也被稱作DoD模型(DoD Model)。這個協定套組由網際網路工程任務組負責維護。 TCP/IP提供了點對點的連結機制,將資料應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化。它將軟體通信過程抽象化為四個抽象層,採取協議堆疊的方式,分別實作出不同通信協定。 TCP 提供的是一個連線導向(Connection Oriented)的可靠傳輸﹐前面所介紹的傳送層檢測手續﹐都會在 TCP 中得到實現。 UDP 則是一個非連線型(Connectionless)的非可靠傳輸協定﹐它並不會運用確認機制來保證資料是否正確的被接收、不需要重傳遺失的資料、資料的接收可不必按順序進行、也不提供回傳機制來控制資料流的速度。因此﹐ UDP 信息可能會在網路傳送過程中丟失﹑重複﹑或不依順序﹐而且抵達速度也可能比接收端的處理速度還快。對於某些訊息量較大、時效性大於可靠性的傳輸來說(比方說語音 / 影像),UDP 的確是個不錯的選擇。 IP 參數說明 256 (子網路範圍0 ~255,所以有256 個IP 位置) 224 (範例中子網路的參數,請以實際的數字套入計算) 2 (主網路位置,和廣播位置佔用兩個IP) 通訊埠 (Port) HTTP: 80 HTTPS: 443 今天學到什麼 HTTP_method GET:讀取 PUT:上傳/更新 POST:提交/建立 DELETE:刪除 傳輸一般都使用post,將資料加密 專有名詞 Use Case (使用案例、用況) Unit Test(單元測試) Integration Test(整合測試) Test Case(測試用例) 今天的作業 1. 前端/後端 前端 當你在逛一個網站的時候,會看到漂亮的頁面、比如有圖片和排版等等,或是一些互動,可以點擊連結、按鈕,這些畫面&與使用者的互動功能就是前端工程師的工作,就像把一道菜端到客人面前讓客人享用一樣。 後端 後端主要著重在功能與資料儲存。比方說註冊會員、登入,在電商網站下單購物也是後端的工作,那什麼又是資料儲存呢?前面所講的這些功能做完之後會產生很多資料,就要把它儲存下來,就像註冊完會員之後會產生帳號密碼,下單購物之後就會有訂單資料,這些都是必須儲存起來的資料。 2. Server, Database Server(伺服器) 一個管理資源並為使用者提供服務的電腦軟體,通常分為檔案伺服器(能使使用者在其它電腦存取檔案),資料庫伺服器和應用程式伺服器。執行以上軟體的電腦,或稱為網路主機(host),24 小時不間斷運轉 Database(資料庫) 資料庫,又稱為資料管理系統,簡而言之可視為電子化的檔案櫃——儲存電子檔案的處所,使用者可以對檔案中的資料執行新增、擷取、更新、刪除等操作。 3. 網路七層 7 應用層 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP 6 表示層 例如XDR、ASN.1、SMB、AFP、NCP 5 會話層 例如ASAP、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets 4 傳輸層 例如 TCP、UDP、TLS、RTP、SCTP、SPX、ATP、IL 3 網路層 例如 IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25 2 鏈結層 例如乙太網、令牌環、HDLC、幀中繼、ISDN、ATM、IEEE 802.11、FDDI、PPP 1 實體層 例如線路、無線電、光纖 4. HTTP-related HTTP HTTP 全名是 超文本傳輸協定(HyperText Transfer Protocol),內容只規範了客戶端請求與伺服器回應的標準,實際上是藉由 TCP 作為資料的傳輸方式 HTTPS HTTPS 全名 超文本傳輸安全協定,那個 S 就是 Secure 的意思;HTTPS 透過 HTTP 進行通訊,但通訊過程使用 SSL/TLS 進行加密,藉由類似於前述的加密方式,在 HTTP 之上定義了相對安全的資料傳輸方法。 由於非對稱加密的運算量較高,傳遞回應較慢;實際的架構上,會透過公開金鑰加密傳遞出共用的金鑰,再透過共用金鑰加密進行後續的傳遞,兼顧了安全性及傳遞速度。 結語 今天從加密的方式出發,考慮每種加密通訊過程中可能受到的攻擊,逐步演變成現今最普遍的加密方式,並藉此來說明 HTTP 與 HTTPS 之間的差異,希望能幫助讀者您理解網路通訊中最基礎的安全知識。 5. 蝦皮買iphone的流程 (s) 前往 Shopee 網站 登入/註冊會員 尋找的商品 (iPhone) 挑選需要的商品(iPhone)規格 加入購物車 結帳 第三方付費服務平台 完成訂單 訂單查詢 其他 server->IP/PC->DB->user/platform Admin