zoukankan      html  css  js  c++  java
  • 计算机网络

    协议的内容

    • 消息的类型
      • 请求消息
      • 响应消息
    • 消息的语法/格式
      • 消息中有哪些字段
      • 字段如何描述
    • 字段的语义
    • 规则
      • 进程应该什么时候,怎样发送消息

    HTTP连接的两种类型

    • 非持久性连接 HTTP 1.0
    • 持久性连接 HTTP 1.1
      • 无流水:客户端收到前一个响应之后才发送新的请求,每个对象使用1RTT
      • 流水机制:HTTP1.1默认,只要遇到对象尽快发出,所有对象使用1RTT

    RTT(Round Trip Time):从客户端发送一个很小的数据包到服务器并返回所经历的时间

    非持久性连接发送一个文件所需时间:2*RTT + 发送文件时间

    HTTP消息

    • 请求消息(request)
      • 请求行(request line):请求方法(GET、POST) + URL + 协议版本
      • 请求头部(request header):键值对
      • 空行:回车符、换行符,通知服务器header结束
      • 请求数据:POST提交表单,GET没有正文,不包含这一部分
    • 响应消息(response)
      • 状态行(status line):协议版本 + HTTP状态码
      • 消息报头:键值对
      • 空行:同上
      • 响应正文:响应数据

    HTTP请求方法

    • POST:通过消息体上传

    • GET:通过URL字段上传

    • HEAD:请Server不要将所请求的对象放入响应消息,只返回header

    • PUT(HTTP1.1):将消息体中的文件上传到URL指定的路径

    • DELETE(HTTP1.1):删除URL指定的文件

    HTTP状态码

    • 2**:成功
    • 3**:转发与重定向
    • 4**:客户端错误
    • 5**:服务器错误

    HTTP无状态:服务器不记录客户端的历史行为

    为了辨别用户身份,进行session跟踪,储存在用户本地的数据

    Cookie组件
    • HTTP请求消息的cookie头部行:cookie字段
    • HTTP响应消息的cookie头部行:set-cookie字段
    • 保存在客户端上的cookie文件,由浏览器管理
    • Web服务器的后台数据库

    Web缓存/代理服务器技术

    在不访问服务器的前提下满足客户端的HTTP请求

    浏览器向代理服务器发送HTTP请求

    • 如果代理服务器中有所需的对象,代理服务器直接响应给客户端
    • 如果代理服务器中没有所需对象,代理服务器向原始服务器发送请求,获取对象,发送给客户端,并保存对象

    缓存/代理服务器既充当服务器又充当客户端。

    缓存命中率

    问题:缓存一致问题

    缓存和原始服务器的数据是否一致?

    解决方法:条件性GET

    请求header字段:If-modified-since

    缓存命中,代理服务器发送一个条件性GET来检查缓存中的某个对象是否是最新的,其请求头中包含If-modified-since字段,原始服务器接收该请求,若该对象在If-modified-since字段指示的日期之后没有进行过更新,则发送一个不含对象的响应报文(避免浪费带宽,浪费时间),状态码304,代理服务器接收到该响应报文,也就得知缓存中的该对象是最新的,所以将缓存中的该对象发送给客户端。

    Email

    SMTP协议(Simple Mail Transfer Protocol)

    TCP,端口25

    服务器消息队列

    命令/响应模式
    • 命令(command):ASC2文本
    • 响应(response):状态代码和语句
    MIME:多媒体邮件扩展

    邮件头部增加额外行声明MIME内容类型:编码方法,解码方式

    邮件访问协议
    • POP协议:认证授权,下载

    • IMAP协议(Internet Mail Access Protocol)

    • HTTP协议:基于Web的协议

    DNS

    • 翻译:域名->IP
    • 主机别名
    • 负载均衡:为一个域名提供多个服务器映射,轮流访问
    为什么不适用集中式DNS而使用分布式DNS
    • 单点失败问题
    • 流量问题
    • 距离问题
    • 维护性问题
    分布式层次式数据库

    根 - 顶级 - 第二层

    DNS记录

    name, value, type, ttl

  • 相关阅读:
    一款JS+CSS实现的无缝平滑图片滚动代码
    2个按钮控制的左右图片滚动特效代码
    JS+CSS控制左右切换鼠标可控的无缝图片滚动代码
    用CSS实现图片水印效果代码
    用鼠标拖动图片的JS代码
    一款实用的JavaScript图片幻灯片代码
    摘自搜狐女人频道的图片切换的JS代码
    JS防PS里的图片拖拉缩放效果代码
    鼠标移至图片后抖动的JS代码
    WINDOWS补丁的多线程下载方法和安装技巧
  • 原文地址:https://www.cnblogs.com/CofJus/p/14464620.html
Copyright © 2011-2022 走看看