应用层**

client-server architecture

  1. 服务器:提供计算服务的设备
    1.1. 永久提供服务
    1.2. 永久性访问地址/域名
  2. 客户机:请求计算服务的主机
    2.1. 与服务器通信,使用服务器提供的服务
    2.2. 可能使用动态IP地址
    2.3. 不与其他客户机直接通信

P2P模型

  1. 不存在永远在线的服务器
  2. 每个主机既可以提供服务,也可以请求服务
  3. 任意端系统/节点之间可以直接通讯
  4. 节点间歇性接入网络
  5. 节点可能改变IP地址
  6. 可扩展性好,网络中有大量主机涌入,P2P能够应对
  7. 网络健壮性好,一台主机退出或崩溃,网络不会崩溃

DNS系统

根据IP地址访问网站难以记忆,因此出现域名,DNS系统来实现域名和IP地址之间的转换

域名:标号不能超过63个字符,不区分大小写
www.baidu.com
com:顶级域名
baidu:二级域名
www:三级域名
.:根

顶级域名为arpa,表示反向解析,即将IP地址解析成域名

域名服务器

  1. 根域名服务器:知道所有顶级域名服务器域名对应的的IP地址
  2. 顶级域名服务器:管理该顶级域名服务器注册的所有二级域名
  3. 权限域名服务器:负责一个区的域名服务器
  4. 本地域名服务器

当一个主机发出DNS查询请求时,这个查询请求就发给本地域名服务器。如果在本地DNS缓存中存在域名对应的IP地址,就向主机返回IP地址
否则,本地域名服务器向根域名服务器发起查询请求,有两种查询方式

  1. 递归查询:根域名服务器向下一级域名服务器查询,下一级域名服务器又向下下级查询,直到查询成功,再一步步返回给上一级域名服务器,直到根域名服务器,根域名服务器返回给本地域名服务器
  2. 迭代查询:根域名服务器告诉本地域名服务器它应该去查询的顶级域名服务器,然后本地域名服务器查询顶级域名服务器,就这样,其他域名服务器中不存在要查找的域名的具体IP时,就告诉本地域名服务区应该查询的下一级域名服务器IP,本地服务器就去查询下一级域名服务器,直到查询成功

高速缓存

文件传送协议FTP

提供不同种类主机系统之间的文件传输能力
基于客户/服务器,用户通过一个客户机程序连接至在远程计算机上运行的服务器程序

FTP工作原理

  1. 登陆:通过ftp地址、用户名和密码,也可以匿名登陆
  2. 使用TCP实现可靠传输
  3. 控制连接进程始终保持,数据连接进程保持一段时间

电子邮箱系统

组成结构

  1. 用户代理:用户和电子邮件的接口,电子邮件的客户端软件,功能有撰写、显示、处理(发送、接收邮件给邮件服务器)、通信(将邮件发给邮件服务器)
  2. 邮件服务器:发送和接收邮件(给其他邮件服务器),向发件人报告邮件传送结果
  3. 协议:SMTP(发送邮件),POP3(读取邮件)
  4. 采用TCP连接

简单邮件传送协议SMTP
规定了在两个相互通信的SMTP进程之间应该如何交换信息
负责发送邮件的SMTP进程是SMTP客户,负责接收邮件的进程是SMTP服务器
三个阶段:连接建立、邮件发送、连接释放
缺点:不能传送可执行文件或二进制对象,只能传送7位ascii码不能传送非英语国家文字,会拒绝超过一定长度的邮件
MIME:通用因特网邮件扩充,使电子邮件系统可以支持多种邮件类型的传输

邮局协议POP3
接受端邮件服务器是服务器,用户代理是客户

网际报文存取协议IMAP
客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若客户需要打开某个邮件,才上传到用户的计算机

基于万维网的电子邮件
用户代理发送到邮件服务器使用的是HTTP协议

万维网

WWW:大规模的联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合
同意资源定位符url——资源(文字、视频、音频……)
url一般形式:<协议>://<主机>:<端口>/<路径>
url不区分大小写,用户通过点击url获取资源,这些资源通过超文本传输协议HTTP传送给使用者
以客户/服务器方式工作,用户使用的浏览器是万维网客户程序,万维网文档所驻留的主机运行服务器程序
HTML:超文本标记语言

超文本传输协议HTTP

过程

  1. 浏览器分析URL
  2. 浏览器向DNS请求解析IP地址
  3. DNS解析出IP地址
  4. 浏览器与服务器建立TCP连接
  5. 浏览器发出HTTP请求
  6. 服务器解析请求,定位请求资源,返回HTTP响应
  7. 释放TCP连接
  8. 浏览器解析显示HTML内容(可以只下载文本部分)

特点

  1. 无状态。同一客户两次访问同一服务器界面,服务器的响应相同。但是在实际工作中,一些万维网站点希望能够识别用户,此时出现了cookie。cookie是存储在用户主机中的文本文件,记录一段时间内某用户的访问记录,服务器可以根据cookie为客户提供个性化服务
  2. HTTP采用TCP作为传输层协议,但HTTP本身是无连接的,通信双方在交换HTTP报文之前不需要先建立HTTP连接
  3. 支持客户/服务端模式

连接方式

  1. 短连接,服务器响应后主动关闭连接
  2. 长连接,服务器响应后连接会保持一段时间,在这段时间内客户端可以再发起HTTP请求

结构

  1. 请求结构
    请求行、请求头部、空行、请求正文
    请求方法、URL、协议版本、头部字段名和值、请求正文(只在POST用到)
  2. 响应结构
    响应行、响应头部、空行、响应正文
    协议版本、状态码、状态码描述、头部字段名和值、响应正文

HTTP状态码

  1. 1XX:请求已接收,继续处理
  2. 2XX:请求已被成功接收、理解、接受
  3. 3XX:要完成请求需要进一步的操作
  4. 4XX:客户端错误,请求有语法错误或请求无法实现
  5. 5XX:服务器端错误,服务器端未能实现合法的请求

GET和POST请求的区别

  1. HTTP报文层面
    GET将请求信息放在URL中,POST放在请求正文,需要解析报文获得请求信息
    GET的请求信息有长度限制,POST没有长度限制
  2. 数据库层面
    GET符合幂等性和安全性,POST不符合
    幂等性:对数据库的一次操作和多次操作获得的结果是一致的
    安全性:对数据库的操作不会改变数据库的数据
    GET是做查询操作
    POST会往数据库中提交数据,会改变数据库数据
    POST是作用在上一级URL,每次请求都会增加新资源,所以每次获得的结果可能不一样
  3. 其他层面
    GET可以被缓存,POST不行

cookie和session的区别

  1. cookie
    1.1. 由服务器发送给客户端的特殊信息,以文本形式存放在客户端
    1.2. 客户端每次向服务器发送请求,都会携带上这些信息,这些信息在报文的响应头
    1.3. 服务器接收后,会解析cookie生成与客户端相对应的内容
  2. session
    2.1. 服务端的机制,在服务器上保存的信息
    2.2. 解析客户端请求,检查请求中是否包含session标识,如果有,就按照已有的session id检索session使用,否则,为此客户端创一个新session,并生成一个相关的session id
  3. 区别
    3.1. cookie存放在客户浏览器,session存放在服务器
    3.2. session比cookie安全
    3.3. 考虑减轻服务器负担,使用cookie

HTTP和HTTPS

  1. HTTPS需要申请CA证书,HTTP不要,HTTPS成本高
  2. HTTPS密文传输,HTTP明文传输,HTTPS传输数据更安全
  3. 连接方式不同,HTTPS三次握手后还要握手确定加密方式
  4. 使用端口不同,HTTPS使用443端口,HTTP默认80端口
  5. HTTPS是由SSL加HTTP协议构建的,SSL是有状态的,因此HTTPS有状态

HTTPS数据传输流程
SSL:安全套接层,采用身份验证和数据加密保证网络通信的安全和数据的完整性

  1. 浏览器将支持的加密算法信息发送给服务器
  2. 服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器
  3. 浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器
  4. 服务器使用私钥解密信息,验证哈希,加密响应消息回发浏览器
  5. 浏览器解密响应消息,并对消息进行验真,之后进行加密交换数据

加密的方式:

  1. 对称加密:加密和解密使用同一个密钥,效率高
  2. 非对称加密:加密和解密分别使用公钥和私钥,公钥算法是公开的,效率低,安全性高,加密长度有限
  3. 哈希算法:将任意长度的信息转换为固定长度的值,算法不可逆
  4. 数字签名:证明某个消息或者文件是某人发出/认同的

socket编程

socket编程

服务器先通过socket()创建socket,然后用bind()绑定端口号,紧接着通过listen()监听端口号的请求,随时准备接收客户端的连接请求
客户端创建socket,然后通过connect()、服务器的IP地址和端口号尝试连接服务器的socket
服务器用accept()等待客户进程返回连接信息
连接成功后,客户端可以向socket写入信息,服务器能读取信息
最后发送完数据,客户端和服务器通过close()关闭连接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351