一、应用层协议原理

  1.套接字(Socket):主机地址+端口地址。(通常为32位IP地址和16位端口号组成,总长度为48位)

  2.进程通过套接字来接收和发送报文。因特网运输层将所提供的服务整合成两种传输服务,TCP与UDP。

  TCP:

   特点:面向连接(C/S)、可靠传输、流量控制、拥塞控制

   应用(括号对应协议):e-mail(stmp)、远程终端访问(telnet)、Web(http)、文件传输(ftp)等。

  UDP:

   特点:不可靠传输

   应用:流媒体(专有协议,如RealNetworks)、IP电话(专有协议,如Vocaltec)等。

二、WEB应用和HTTP协议

  1.WEB构成

   a.WEB服务器:IIS、Apache、Tomcat等

   b.浏览器:IE、Firefox、Chrome等

   c.协议:信息传输协议--HTTP,信息表达协议--HTML

  2.WEB内容的表达

   a.WEB页面由一些对象组成,如HTML文件、JPEG图片、音频等

   b.任何一个对象都可以用URL来定位

  3.WEB内容的传输--HTTP协议

   a.客户端/服务器模式:浏览器请求、接收、展示WEB对象;服务器发送对象对请求响应

   b.http1.0:非持久性连接。页面有多少对象就要多少连接(步骤:TCP连接、对象请求/传送)

   c.http1.1:持久连接。保持连接用于后续对象的传送,占用服务器资源少。

  4.HTTP请求报文

   a.一般格式如下

   b.支持的方法:

    HTTP1.0定义的方法有:GET(请求指定URL的对象)、POST(提交表单、也可以同时请求一个WEB页面)、HEAD(请求服务器返回一个响应报文,常用以进行故障跟踪)。

    HTTP1.1新定义的方法有:PUT(上传的文件放在实体主体字段中,目标路径有URL字段标明)、DELETE(删除URL字段中指定的文件)。

  5.HTTP响应报文

   a.一般格式如下

   b.常见的HTTP响应状态码和短语

    · 200 OK (请求成功)

    · 301 Moved Permanently (被请求的对象被移动过)

    · 400 Bad Request (服务器不理解的请求)

    · 404 Not F6ound (找不到请求的对象)

    · 505 HTTP Version Not Supported (不支持请求报文使用的HTTP协议版本)

  6.用户-服务器交互:Cookie

   a.Web站点使用Cookie的目的:限制用户的访问,把内容和用户身份关联起来。

   b.Cookie技术的组成部分:

    ·在HTTP响应报文中有一个Cookie首部行;

    ·在HTTP请求报文中也有一个Cookie首部行;

    ·在用户的端系统中保留了一个Cookie文件,由用户浏览器负责管理;

    ·在Web站点有一个后端数据库。

   c.Cookie工作流程:如下图

    

   d.优点:认证、推荐、用户会话状态、购物车等。

  7.WEB缓存

   a.目的:加速客户端访问页面速度,减少时延;减少局域网与外部网络数据交换量,节省宽带开支。

   b.效果评估:命中率与延时

   c.缓存报文:几个关键字:Last-Modified、If-Modified-Since、304 Not Modified

三、文件传送协议:FTP

  1.FTP简况

   使用TCP协议传输数据、C/S模式、端口:21/20

  2.FTP主要功能

   a.客户机与服务器之间交换一个或多个文件,文件可复制不可移动

   b.能够传输多种类型、多种结构、多种格式的文件

   c.提供对本地和远程系统的目录操作功能,如改变目录

   d.具有对文件改名、显示内容、改变属性、删除之功能以及其他一些操作

   e.具有匿名FTP功能

  3.FTP与HTTP对比

   a.相同点:均使用TCP协议。

   b.不同点:

    ·FTP的控制信息是带外传送的,HTTP的控制信息则是带内传送的。FTP存在两个并行的连接,分别是:控制连接(21)和数据连接(20)。

    ·FTP连接是有状态的,HTTP无状态。有状态:在整个会话期间维护用户状态信息。把用户账户和控制连接联系起来、追踪用户在远程目录树上的位置、对活动着的用户会话的状态进行追踪,以限制FTP会话总数。

   c.常用的FTP命令:

    ·USER username;

    ·PASS password

    ·LIST

    ·RETR filename

    ·STOR filename

   d.常见的FTP应答:

    ·331 Username OK, password required

    ·125 data connection already open; transfer starting

    ·425 Can't open data connection

    ·452 Error writing file

四、E-mail

  1.构成

   a.用户代理:邮件报文编辑、查阅,如FoxMail等。

   b.邮件服务器:邮箱、报文。

   c.邮件传输协议(如SMTP):客户端(发送邮件到服务器)、服务器(接收和转发)。

   d.邮局协议(如POP)。

  2.SMTP协议

   a.SMTP协议简述:

    ·使用TCP可靠传送邮件报文,端口25;

    ·直接传输:发送服务器到接收服务器;

    ·传输三个阶段:握手、报文传输、结束;

    ·命令/响应交互:命令(ASCII文本)、响应(状态码和短语);

    ·邮件报文必须使用7-bit ASCII表示。

   b.传输过程:

    ·用户代理发送消息给目标邮箱test@mail.com     

    ·发送邮件服务器将消息保存到消息队列         

    ·SMTP客户端与test的邮件服务器建立TCP连接     

    ·SMTP客户端通过TCP连接发送消息到test的邮件服务器

    ·消息存储,并等待被阅读。

   c.交互样例:如下图

  3.SMTP评述

   a.使用持续连接

   b.要求报文(首部&信体)全部使用7-bit ASCII码

   c.某些代码组合不允许出现在报文中(e.g., CRLF.CRLF),需要进行编码(base-64或quoted printable)

   d.SMTP服务器用CRLF.CRLF表示邮件报文的结束

  4.SMTP vs HTTP

   a.都使用ASCII命令/响应交互,状态码

   b.HTTP:pull SMTP:push

   c.HTTP每个对象分装在各自的响应报文中,SMTP多个对象在一个多分部的报文中传送

  5.邮件报文格式

   首部(header):

    To:xxx@mail.com

    From:yyy@mail.com

    Subject:......

   信体(body,报文):

    ASCII characters only

  6.非ASCII码数据的MIME扩展

   使用MIME扩展对消息进行转码

HTTP协议和WEB应用的更多相关文章

  1. http协议和web应用有状态和无状态浅析

    http协议和web应用有状态和无状态浅析 (2013-10-14 10:38:06) 转载▼ 标签: it   我们通常说的web应用程序的无状态性的含义是什么呢? 直观的说,“每次的请求都是独立的 ...

  2. http协议和web本质

    转载:http://www.cnblogs.com/dinglang/archive/2012/02/11/2346430.html http协议和web本质 当你在浏览器地址栏敲入“http://w ...

  3. HTTP协议和web工作原理

    本章学完之后能干什么? 要把 知识点学好,那就需要把它相关的周边知识点了解全面 HTTP协议是web学习的核心!!! 学东东切忌只学配置,不学原理:只学会框架有什么用,要会自己写框架!! web学习直 ...

  4. http协议和web本质(转)

    当你在浏览器地址栏敲入“http://www.cnblogs.com/”,然后猛按回车,呈现在你面前的,将是博客园的首页了(这真是废话,你会认为这是理所当然的).作为一个开发者,尤其是web开发人员, ...

  5. HTTP协议和WEB框架

    一.HTTP协议 <<HTTP权威指南>>读书笔记:https://www.cnblogs.com/qcssmd/p/5508150.html 一.HTTP简介 HTTP协议是 ...

  6. Http协议和web本职【转自丁码农】

    当你在浏览器地址栏敲入“http://www.cnblogs.com/”,然后猛按回车,呈现在你面前的,将是博客园的首页了(这真是废话,你会认为这是理所当然的).作为一个开发者,尤其是web开发人员, ...

  7. http协言和web本质

    http协议和web本质 作为一个开发者,尤其是web开发人员,我想你有必要去了解这一系列的处理流程,在这期间,浏览器和服务器到底是如何打交道的?服务器又是如何处理的?浏览器又是如何将网页显示给用户的 ...

  8. 页面解耦—— 统跳协议和Rewrite引擎

    原文: http://pingguohe.net/2015/11/24/Navigator-and-Rewrite.html 解耦神器 —— 统跳协议和Rewrite引擎 Nov 24, 2015 • ...

  9. Http协议和Tomcat服务器

    Http协议和Tomcat服务器 什么是Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议. Http协议的组成 Ht ...

随机推荐

  1. 实现Bootstrap Carousel Fade Transition 淡入淡出效果

    html代码: <div id="carousel" class="carousel slide carousel-fade" data-ride=&qu ...

  2. iOS 数据持久性存储-属性列表

    iOS上常用四种数据存取方法有: 1.属性列表 2.对象归档 3.iOS的嵌入式关系数据库(SQLite3) 4.苹果公司提供持久性共聚Core Data 由于苹果公司的沙盒机制,每个应用程序都有自己 ...

  3. c# winform 设置winform进入窗口后在文本框里的默认焦点

    c# winform 设置winform进入窗口后在文本框里的默认焦点 进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文 ...

  4. 封装cookie组件

    var Cookie = { // 读取 get: function(name){ var cookieStr = "; "+document.cookie+"; &qu ...

  5. mvc的真实含义

    MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用 MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务. 视图 : 视图是用户看到并与之 ...

  6. Java常量和变量

    1.Java运行原理 编译+解释型语言: 程序代码经编译后转换为一种称为java字节码(.class文件)的中间语言 file.java--->Class.class java虚拟机JVM将字节 ...

  7. Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)

    Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)   关于LAMP的各种知识,还请大家自行百度谷歌,在这里就不详细的介绍了,今天主要是介绍一下在Centos下安装,搭建一 ...

  8. UnixODBC

    UnixODBC下载安装地址:http://www.unixodbc.org/ DOWNLOAD Distribution Format unixODBC is currently availible ...

  9. IFrame中Session丢失的解决办法

    1.打开IIS管理器 inetmgr2.选择被嵌入iframe源站点或者目录,右键点击打开属性框3.切换到HTTP头4.添加5.自定义HTTP头名: P3P6.自定义HTTP头值: CP=" ...

  10. cortex m0 lpc1114的NVIC中断如何使用

    LPC1114单片机的NVIC中断函数,有开中断.关中断.设置优先级.挂起等操作函数.这些函数位于core_cm0.h文件里面.比如开中断的函数如下: /** \brief Enable Extern ...