**アプリケーション層の概念:** ネットワーク アプリケーションは、一般のネットワーク ユーザーがネットワーク サービスを使用するための直接的な方法であり、「インターフェイス」であり、コンピュータ ネットワークの最も急速に成長し、最も豊富な層でもあります。
アプリケーション層機能
アプリケーション層は、ユーザーに提供されるネットワーク サービスに関連しており、これらのサービスは非常に豊富で、ファイル転送、電子メール、P2P アプリケーションなどがあります。アプリケーション層は、ネットワーク アプリケーションを使用するためのインターフェイスをユーザーに提供します。
Web アプリケーションのアーキテクチャ
- クライアント/サーバー (C/S) 構造のネットワーク アプリケーション:
C/S 構造のネットワーク アプリケーションは、最も古典的で基本的なネットワーク アプリケーションです。
特徴: 通信の両側はサーバーとクライアントです. サーバーは最初に実行され、通信を受け入れる準備ができている必要があります. クライアントプログラムは後で実行され、サーバーとの通信を積極的に要求します.
利点: クライアントの処理能力を最大限に活用し、クライアントの処理後に多くのタスクをサーバーに送信でき、クライアントは迅速に応答します。
短所: システムのメンテナンスとアップグレードのコストが非常に高くなります。C/S アーキテクチャは、コンピュータにウイルスなどの問題が発生した場合、特別なクライアント ソフトウェアをインストールする必要があります。ハードウェアが損傷した場合は、インストールまたは保守が必要です。システム ソフトウェアをアップグレードするたびに、クライアントを再インストールする必要があります。
例: WWW アプリケーション、ファイル転送 FTP プロトコル、電子メールなど。
-
Browser/Server (B/S) 構造のネットワーク アプリケーション:
このシステムは、C/S 構造の変更と促進として理解できます。このアーキテクチャでは、ユーザー インターフェイスは WWW ブラウザーを介して実装され、ビジネス ロジックのごく一部がフロント エンドに実装され、主要なビジネス ロジックがサーバー側に実装される、いわゆる 3 層構造が形成されます。 .- ブラウザ側: ユーザーが使用するブラウザは、ユーザーのオペレーティング システムのインターフェイスです. ユーザーはブラウザ インターフェイスを介してサーバー側に要求を行い, サーバー側から返された結果を処理して表示します. インターフェイスを介して, ロジックシステムの機能を更新することができます。
- サーバー側:データサービスを提供し、データを操作し、構造を中央層に戻し、結果がシステムインターフェイスに表示されます。
- ミドルウェア: これは、ブラウザーとサーバーの間で実行されるものです。このレイヤーは、主にシステムロジックを完成させ、特定の機能を実装し、ユーザーリクエストを受信してサーバーに送信し、サーバーの結果をユーザーに返します.ブラウザとサーバーの間で交換する必要がある情報は、ミドルウェア。
C/S と B/S アーキテクチャの違い: - CS はローカル エリア ネットワークとプライベート ネットワーク
の小規模なネットワークに基づいており、ローカル エリア ネットワークは専用サーバーを介して接続とデータ交換サービスを提供します。専用のネットワークハードウェア環境である必要はありません。- CS クライアントは計算能力を持たない入出力デバイスではなく、特定のデータ処理機能とデータ保存機能を備えています; BS クライアントは単純な入出力デバイスです- データ セキュリティ: CS構造ソフトウェアによるデータ配信の特性上、クライアント側で火災やハッカーなどの事故が発生した場合、データが失われる可能性があります.グループレベルのリモートソフトウェアアプリケーションの場合、CSアーキテクチャはさまざまな場所に複数のサーバーをインストールする必要があります.このとき、複数のサーバー間のデータ同期とデータの整合性に影響を与え、サーバーに問題があるとアプリケーション全体のデータ セキュリティに影響を与えますが、BS アーキテクチャのデータは本社のデータベース サーバーに集中的に格納されます。クライアントはデータを保存しないため、データの同期を考慮する必要はありません.クラスの問題、セキュリティはより信頼できます. - CS は応答速度が速い: CS アーキテクチャ クライアントには一定のデータ ストレージとコンピューティング機能があるため、クライアントが計算した後、多くの作業がサーバーに送信されます。- 移植性: 通常、CS はクライアントのオペレーティング システムに制限があります。Win98 には適しているかもしれませんが、必ずしも Win2000 に適しているとは限りません。また、Linux や Unix などは言うまでもなく、他の新しい Microsoft オペレーティング システムには適していません。BS アーキテクチャのすべてのクライアントは単なるブラウザであり、メンテナンスは必要ありません。 -
純粋な P2P 構造のネットワーク アプリケーション:
特徴: 純粋な P2P 構造のネットワーク アプリケーションでは、従来のサーバーとクライアントの区別がなく、それらをまとめてピアと呼びます.
P2P 構造のネットワークは、優れたパフォーマンスと高速な伝送速度を備えています.
利点:すなわち「平等な地位」。通常、ピアは一般的なユーザー コンピューティング デバイスで実行されます。
欠点: ピアは動的にアプリケーションに参加またはアプリケーションから離脱します。新しく参加したピアは、どのピアがオンラインであるか、オンライン ピアのアドレス、およびオンライン ピアによって提供されるサービスを知る必要があります。純粋な P2P アプリケーションの場合、中央サーバーがないため、これらの問題を解決することは非常に困難です。
- 混合構造ネットワーク アプリケーション:
混合構造ネットワーク アプリケーションでは、クライアントとサーバー間に従来の C/S 構造の通信があり、クライアント間の直接通信もあります。
通信プロセス:
1. 各顧客は、C/S 方式でサーバーに自分のネットワーク アドレスを登録し、共有できるリソースまたは提供できるサービスを宣言します. 2. 中央サーバーを介して他のオンライン顧客を発見し
、他の顧客が共有できるリソースの取得など
。
HTTP プロトコル
ハイパーテキスト転送プロトコルとも呼ばれるポート番号は80です。
HTTP 接続の原則:
- HTTP クライアント プロセスは、TCP 接続を確立するためにサーバーのポート80を要求します。
- HTTP クライアント プロセスは、確立された TCP 接続に基づいてサーバーに要求メッセージを送信します. 一般的な要求メソッドには、GET、HEAD、POST、OPTION、および PUT があります。
-GET: URL でマークされた情報の読み取り要求。
-HEAD: URL によってマークされた情報のヘッダーを読み取る要求。つまり、応答メッセージにオブジェクトを含める必要はありません。
-POST: コメントなどの情報をサーバーに追加します。
-OPTION: いくつかのオプションに関する情報を要求します。
-PUT: 指定した URL にドキュメントを保存します。 - HTTP サーバー プロセスは、要求メッセージを受信し、要求メッセージの要件に従って動作し、返される情報を応答メッセージにカプセル化してクライアントプロセスに送信します。
- HTTP サーバー プロセスは、TCP に切断を通知します。
- HTTP クライアントは応答メッセージを受信して TCP 接続を切断し、ブラウザは応答メッセージからHTML ファイルを抽出して解析および表示します。
HTTP 接続モード:
HTTP は、トランスポート層の TCP 送信メッセージに基づいています。
- 非永続的な接続: HTTP クライアントは、HTTP サーバーとの TCP 接続を確立し、接続を介して HTTP 要求メッセージを送信し、HTTP 応答メッセージを受信してから切断します。
- 並列接続: 複数の並列 TCP 接続を確立し、HTTP 要求を並列に送信し、HTTP 応答を並列に受信します。
- 永続的な接続: 確立された TCP 接続を再利用することで、新しい TCP 接続を作成するイベント オーバーヘッドを削減します。
- 非パイプライン永続接続: 非パイプライン永続接続とも呼ばれ、クライアントは前の応答メッセージを受信した後にのみ次の要求メッセージを送信できます。リクエスト --> レスポンス --> リクエスト
- パイプライン永続接続: パイプライン永続接続とも呼ばれ、クライアントは複数のリクエストを同時に送信し、複数のレスポンスを同時に受信し、レスポンス メッセージを待たずにリクエスト メッセージを連続して送信できます。
HTTP ステータス コードと一般的なステータス コードの分類:
HTTP ステータス コードは、サーバーがクライアントに応答を通知するために使用されます。
HTTP ステータス コードの分類
ステータス コード カテゴリ | 範囲 | 効果 | 例証する |
---|---|---|---|
1xx | 100~199 | メッセージ通知 | 通知情報、さらにやり取りが必要な場合があります |
2xx | 200~299 | 成功 | クライアント要求操作を正常に完了して応答する |
3xx | 300~399 | リダイレクト | リソースが移動され、リクエストを新しい URL に送信する必要があることを示します |
4xx | 400~499 | クライアント エラー | 不正なクライアント要求のため、正常に応答できません |
5xx | 500~599 | サーバー側のエラー | サーバー側のエラーのため、正常に応答できません |
一般的な HTTP ステータス コード
ステータスコード | 段階 | 意味 |
---|---|---|
100 | 続く | リクエストの最初の部分が正常に受信されたことを示し、クライアントは続行するよう求められます |
200 | OK | 成功。要求されたメッセージは応答メッセージにあります |
301 | 恒久的に移動 | リダイレクト、要求されたアドレスは完全に削除され、新しい URL が応答メッセージの最初の行に表示されます Location: 通常、ブラウザは新しい URL に要求を自動的に送信します |
400 | 要求の形式が正しくありません | クライアント要求エラー、つまり、クライアントがクライアント要求を正しく理解できない |
401 | 無許可 | 権限がありません。ユーザー名とパスワードを入力する必要があります |
404 | 見つかりません | クライアントが要求したオブジェクトがサーバーに存在しません |
451 | サポートされていないメディア タイプ | サポートされていないメディア タイプです。リクエストがサーバーによって拒否された可能性があります。または、リクエスト メソッドまたはパラメーターがサーバーの要件と一致していません。 |
505 | HTTP バージョンがサポートされていません | サーバーでサポートされていない、リクエストで使用される HTTP バージョン |
クッキー
Cookie中文名称为小型文本文件,指某些网站为了辨别用户身份、进行对话跟踪而储备在用户本地终端上的数据,主要用于用户跟踪。
为什么要使用Cookie?
HTTP服务器端并不会保存关于客户的任何消息,所以HTTP是一种无状态的协议。因此,客户端与服务器端一旦数据交换完毕,客户端和服务器端的连接就会关闭,再次发送消息需要再次建立连接,这就意味着服务器无法跟踪用户的会话。比如用户选择一件衣服放进购物车,当再次选择一件衣服的时候,服务器端不知道这是否还是这个顾客的行为,因此需要每购买一件衣服就立刻结账。
Cookie技术:
-
HTTP响应报文中的Cookie头行:Set-Cookie。在使用Cookie技术的网站,在给用户发送的HTTP响应报文中,通过Set-Cookie头行,发送大小通常不超过 4 KB的Cookie信息,其中包含为其用户分配的ID、用户对网站的访问偏好等;
-
用户浏览器在本地存储、维护和管理的Cookie文件。浏览器每当获得新的Cookie信息,就会在Cookie文件中追加一行Cookie信息,包括网站的域、路径、内容(如用户ID、访问偏好、商品选择等)、有效期、安全5个字段;
-
域(domain)和路径(path)
这两个选项共同决定了Cookie信息能被哪些页面共享Domain Path www.google.com.hk / .google.com.hk /webhp .google.com.hk / .google.com.hk / domain参数用来控制cookie对哪个域有效,默认为设置cookie的那个域。这个值可以包含子域,也可以不包含。如上图,domain选项中,可以是**.google.com.hk不包含子域,也就是对.google.com.hk所有子域都有效,也可以是www.google.com.hk**包含子域。
path用来控制cookie发送的指定域的路径,默认为 “/”,表示指定域下的所有路径都可以访问。他是在域名的基础上,指定可以访问的路径。例如cookie设置为“domain = .google.com.hk ; path = /webhp”,那么只有".google.com.hk/webhp"和"/webhp"下的任一子目录如"/webhp/xxx"会发送cookie信息,而".google.com.hk"不会发送。
-
内容(expires)和有效期(max-age)
expires默认为Sessison,表示浏览器绘画结束的时候(即关闭浏览器)就会删除该cookie信息;
可以通过expries设置删除时间,这个值为GMT格式的日期,如:Thu,11 Nov 2021 16:00:00 GMT,表示在2021-11-11日的16点整失效,在此期间cookie信息仍会保存在用户的机器中;
如果失效日期是以前的时间,则cookie会被立刻删除。在新的HTTP协议中,逐渐使用max-age属性取代到expires。expires表示的是失效时间,是时刻;max-age是失效的时间段,以秒为单位。
若max-age为正值,则cookie信息在max-age秒后失效,如:“max-age = 10800;”,则cookie信息在三个小时后失效;
若max-age为负值,则cookie信息将在浏览器会话结束后失效;
若max-age为0,则表示删除cookie信息。 -
安全(secure):
secure是cookie的安全标志,通过cookie直接包含一个secure单词来指定的,也是cookie字段中唯一一个非名值对的部分。默认情况下为空,即不指定secure选项,则不论是HTTP请求还是HTTPS请求,均会发送cookie;
指定后,cookie只有在使用SSL连接(如HTTPS请求)时才会发送到服务器。
注意:只有保证网页是安全协议(如HTTPS协议)请求时,才能去设置secure类型的cookie。 -
HTTP选项(HTTPOnly)
需要特别提一下HTTPOnly属性,该属性是用来限制客户端脚本对cookie的访问。将cookie设置为HTTPOnly可以减轻XSS攻击的危害,放置cookie被窃取,以增强cookie的安全性。
-
-
HTTP请求报文中Cookie头行:Cookie。当用户向已经访问过的且获得Cookie信息的网站发送HTTP请求报文时,浏览器会自动检索本地的Cookie文件,并在每个请求报文中通过Cookie头行,携带上网站为该用户分配的Cookie信息。网站基于用户请求中的Cookie值,实现对用户的追踪、偏好统计、会话关联等功能。
-
网站在后台数据库中存储、维护Cookie信息、包含已分配给用户ID、每个ID用户在本网站的访问特征等。
Cookie工作原理如下:
Cookie缺点:
- 安全性:对于在公共场所多个用户使用同一台计算机使用浏览器,则会被不法分子获取用户的信息,如登录过哪些网站,购买过什么商品。
- 信息不同步:如果一台浏览器安装多个浏览器,不同的浏览器都会以独立的空间存放Cookie,因为Cookie不但可以确认用户,还包含计算机和浏览器的信息,对于在不同的浏览器中登录,就会得到不同的Cookie信息。
HTTPS协议
HTTPS是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS在HTTP的基础上加入了SSL / TLS,HTTPS的默认端口号是443,存在一个加密/身份验证层(在HTTP与TCP之间)。
HTTP存在不安全性的严重缺陷:
- 明文数据传输:HTTP采用明文数据传输,攻击者只需要采取网络嗅探的攻击方式,就可以获取大型网站的用户信息。
- 消息完整性检测:HTTP检测数据完整性仅仅使用报文头部包含的本次传输数据的长度,而对信息是否被篡改不做检测,因此攻击者很容易就发动中间人攻击,修改客户端和服务器端传输的数据,甚至在传输数据中插入恶意代码,导致客户端被引流至恶意网站被植入木马。
HTTPS连接原理:
- 客户端将所支持的算法列表和一个用于产生密钥的随机数发送给服务器;
- 服务器从算法列表中选择一种加密算法,并将加密算法、一份包含服务器公用密钥的证书以及用于认证目的的服务器标识、服务器提供的一个用作产生密钥的随机数一起发送给客户端;
- 客户端对服务器的证书进行检验,确认是否由自己信任的证书签发机构签发,如果不是,则将是否继续通讯的决定权交给用户选择(此处为一个安全缺陷)。如果检查无误或者用户选择继续通讯,则客户端认可服务器身份;
- 客户端抽取服务器的公用密钥,并产生一个叫做 PreMaster Secret 的随机密码串,并使用服务器的公用密钥对其进行加密,并将加密的信息发送给服务器;
- 客户端和服务器端根据PreMaster Secret以及客户端和服务器的随机数值独立计算出会话密钥(Session Key) 和 MAC算法密钥;
- 后续的客户端与服务器交互过程中使用会话密钥和MAC算法密钥进行加密和解密:
- 加密过程:首先使用MAC算法对内容进行摘要,然后将摘要放在内容后面,再使用会话密钥进行加密。
- 解密过程:首先使用会话密钥进行解密,然后取出摘要对数据完整性进行验证。
HTTP与HTTPS的优缺点:
- 使用HTTPS协议可认证用户和服务器,确认数据发送到正确的客户端或者服务器;
- HTTPS协议采用SSL + HTTP 构架的可进行加密传输、身份认证的网络协议,安全性比HTTP强,但并不是绝对安全,却也大幅增加了中间人攻击的成本;
- 相同网络环境下,HTTPS协议会使页面的加载时间延长近 50%,且HTTPS会影响缓存,增加数据开销和功耗。
- 因为HTTPS协议的工作需要额外的计算资源消耗,导致成本增加。如在大规模的用户访问应用的场景下,服务器需要频繁的进行加密和解密操作,几乎每个字节都需要进行加解密,这就产生了服务器成本。
Internet电子邮件
电子邮件系统结构:
组成:主要包括邮件服务器、简单邮件传输协议(SMTP)、用户代理和邮件读取协议(POP、IMAP)等。
电子邮箱工作流程:
对于邮件服务器来说,既是客户端也是服务器端,如邮件接收器A主动发送邮件给B,此时A为客户端,B为服务器端。
用户代理:
用户代理是电子邮件应用的客户端软件,为用户提供使用电子邮件的接口。
主要功能:支持用户撰写、显示、处理、收发邮件,为用户阅读、回复、转发、保存和撰写邮件提供编译和操作环境。
邮件服务器:
实现:邮件服务器内存维护一个外出邮件队列,在队列中暂存注册用户等待向外发送的邮件。邮件服务器之间发送和接收邮件采用C/S架构。
功能:邮件服务器的功能是发送和接收邮件,同时告诉发信人邮件传送的情况(已交付、已拒绝、丢失等),是电子邮件体系结构的核心;
发送过程:
1. 用户A向用户B发送邮件,邮件首先发送到邮件服务器A的外出邮件队列中;
2. 首先从服务器A依次从队列中取出邮件,当发送邮件A时,先从收件人邮件地址中解析出接收邮件服务器的域名或IP地址,然后将邮件基于SMTP协议发送给邮件服务器B。
3. 邮件服务器B将接收到的邮件存放到用户B的邮箱中。
4. 如果邮件A已经成功从邮件服务器A发送给邮件服务器B,则清除邮件服务器A中外出邮件队列中的邮件A,否则,邮件A将继续保存在外出邮件队列中;如果发送失败,则每隔一段时间重新发送,通常间隔30min,如果几天后仍没有发送成功,则以邮件的形式告诉用户A邮件发送失败。
参考文献
《计算机网络原理2018年版》作者 :李全龙
百度百科
CSDN
以上是我自己的学习总结,如果哪里不足或者描述错误欢迎大家提出来,期待和大家一起进步!!!
码字不易,希望获得您的小小的点赞和收藏,感激不尽!!!