对网络应用层的理解(一)

上一篇博客中从OSI模型出发讲了总体上面的各层功能,今天从应用层开始来具体讲述每一层的理解。第二篇:对网络应用层的理解(一)。

网络应用体系结构

  • 客户机/服务器结构(C/S)
  • 点对点结构(P2P)
  • 混合结构(Hybrid)

C/S结构:按照功能不同将主机划分为客户机和服务器,服务器用来提供服务,客户机使用服务器提供的服务。

服务器:

  • 7*24小时提供服务
  • 永久性访问地址/域名
  • 利用大量服务器实现可扩展性

客户机:

  • 与服务器通信,使用服务器提供服务
  • 间歇性接入网络
  • 可能使用动态IP地址
  • 不会与其他客户机直接通信

例如:

这里写图片描述

P2P结构:例如文件共享下载服务

特点:

  • 没有永远在线的服务器
  • 任意端系统/节点之间可以直接通讯
  • 节点间歇性接入网络
  • 节点可能改变IP地址

混合结构:Napster(一款可以在网络中下载自己想要的MP3文件的软件。它同时能够让自己的机器也成为一台服务器,为其它用户提供下载。)

  • 文件传输使用P2P结构
  • 文件的搜索采用C/S结构-集中式

这里写图片描述

进程间通信:socket

同一主机上运行的进程之间通信:进程间通信机制/操作系统提供

不同主机上运行的进程之间通信:消息交换/报文交换

socket:操作系统提供的一种抽象,将网络硬件基础设施以及网络协议栈,比如说链路层,网络层,传输层抽象为一个叫socket套接字的东西。如下图:进程间通信利用socket发送/接受消息实现

这里写图片描述

HTTP协议

web应用遵循HTTP协议(HyperText Transfer Protocol),采用C/S结构,是一个无状态协议,也就是说服务器不维护任何有关客户端过去所发请求的消息,使用TCP传输服务,具体如下:

  • 服务器在80端口等待客户的请求
  • 浏览器发起到服务器的TCP连接(创建套接字Socket)
  • 服务器接受来自浏览器的TCP连接
  • 浏览器与web服务器交换http消息
  • 关闭TCP连接

HTTP连接的两种类型

非持久化连接(HTTP1.0版本使用,每个TCP连接最多允许传输一个对象)
持久化连接(HTTP1.1版本使用,每个TCP连接允许传输多个对象)

HTTP消息

请求消息格式:method-请求方法,url-请求路径,version-版本号

这里写图片描述

对比get和post请求方法
GETPOST
参数携带在url的后面url不携带参数
效率高效率低
能够被缓存默认不会被缓存
数据量小数据量大
产生一个tcp数据包(header+data)产生两个tcp数据包(先发送header,再发送data)
响应消息格式

这里写图片描述

其中两个时间点:Date(Date头域表示消息发送的时间,服务器响应中要包含这个头部,因为缓存在评估响应的新鲜度时要用到,其时间的描述格式由RFC822定义)Last-Modified(WEB服务器认为对象的最后修改时间,比如文件的最后修改时间,动态页面的最后产生时间等等)
响应状态码
1XX表示请求已经接收,继续处理
2XX请求被正常处理
3XX表明浏览器要执行某种附加操作以完成请求
4XX客户端发生错误
5XX服务器发生错误
常用状态码
200表示客户端请求成功
301永久性重定向
302临时性重定向
304从客户端的缓存中取资源
400客户端请求有语法错误
401请求需要认证
403服务端拒绝服务
404找不到对应资源
500服务器端发生故障
503服务器正在维护

cookie技术

由服务端产生保存在客户端,用来跟踪用户会话,弥补http协议无状态的不足。某些网站为了辨别用户身份、进行session跟踪而存储在用户本地终端上的数据(通常经过加密)。

cookie的原理

这里写图片描述

这里通过这个图大致描述一下过程:假设有一个从未访问过亚马逊网站的用户访问该网站,这里浏览器本身在cookie文件中有一条信息叫做ebay:8734,这个我们先不管它。客户端第一次访问服务器的时候使用的是常规访问方法,也就是不携带任何cookie信息的。服务器第一次接受请求后发现这个用户是第一次访问的,于是服务器给这个用户创建了一个ID:1678,然后将这个用户的信息以及ID一起存储在数据库中记录下来。当服务器给客户机第一次返回时,在常规响应行基础上加上set-cookie:1678返回,浏览器收到响应时,会将这段信息解析出来并且给自己的cookie文件中加上用户在这个网站上的唯一标识号1678。当用户在一次访问时,会携带它的cookie信息1678请求,服务器再一次收到请求后会识别出该用户,然后可以做一些面向这个用户的特殊行为,比如说我在这个网站上买东西,这时候就会识别出我买过什么,然后给出相似的物品推荐。再相隔一周或者更长时间,只要我的cookie有效,那么再次访问这个网站时,还会重复上述第二次的过程。
所以这也就不得不提出cookie的弊端,最大的弊端就是 隐私问题,还拿上面购物的例子举例,一些非法的商家可能会时不时推送一些广告或者是其他信息给用户,造成个人隐私的泄露,导致不安全问题。

cookie的字段

namecookie名称
valuecookie的值
domaincookie的域名,默认为请求的地址
pathcookie的页面路径
sizecookie的大小
expirescookie的过期日期
securecookie安全
httponlycookie的读写性

web缓存技术

我在之前的博客中 写过,这里就不再具体总结了,详情:http://blog.csdn.net/shenmill/article/details/71080926

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值