进程通信和HTTP协议

1.应用层协议原理
1.1应用程序体系结构

①客户机/服务器体系结构
(固定IP,一直打开)
P2P体系结构(流量密集型,具有高度自扩展性,任意间断连接的主机对)

1.2进程通信
1.2.1客户机和服务器进程

不同端系统上的进程通过跨越计算机网络交换报文而相互通信。我们定义发起通信的进程被标示为客户机,在会话开始时等待联系的进程是服务器
1.2.2进程与计算机网络之间的接口

进程通过名为套接字(类比于一栋房子的门)的软件接口在网络上发送和接收报文,套接字是应用层与运输层之间的接口,也称为应用程序编程接口。应用程序开发者可以控制套接字在应用层端的所有东西,但对于该套接字的运输层端的控制权仅限于:①选择运输层协议    ②设定少量运输层参数

进程通信和HTTP协议_第1张图片

运输层协议选择的需求:可靠数据传输、吞吐量、定时、安全性
1.3关于运输层协议的选择(不能提供对吞吐量和定时的保证)
因特网(TCP/IP网络)上的应用使用了两个运输层协议:UDP和TCP
TCP服务(具有安全性服务的TCP称为SSL)[必须服务器先运行]
①面向连接(握手) ②可靠传输 ③流量控制 ④不对延时保证
UDP服务[服务器可以后于客户机运行]
①不可靠传输 ②无连接(握手) ③不提供流量控制


2.应用层协议
应用层协议定义了报文类型、报文语法、字段的语义、发送和响应的规则
2.1Web应用和HTTP协议
2.1.1Web应用

Web页面是由对象组成的,对象就是文件,如HTML文件、JPEG图形文件等,这些文件通过一个URL地址寻址。多数Web页面含有一个基本HTML文件以及几个引用对象,在基本HTML文件中通过对象的URL地址对对象进行引用。
URL(统一资源定位符)——<协议>://<主机>:<端口>/<路径> 


2.1.2HTTP协议
①无状态协议——不会记录客户机的状态信息
②连接方式
非持久连接——每个请求/响应(即每次只能请求一个对象)对是经一个单独的TCP连接发送
持久连接——所有的请求/响应经相同的TCP连接发送
每一个对象的传输时延为两个RTT(三次挥手前两部分所耗费的时间)。一个用于建立TCP,一个用于请求和接收一个对象。
从输入域名到最后呈现经历的过程:
域名解析(得到域名对应的IP地址) --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源 --> 浏览器对页面进行渲染呈现给用户 --> 四次挥手结束

三次握手——即客户机向服务器发送连接试探后,服务器做出确认和响应,最后,客户机向服务器返回确认。完成前两个部分后,客户机将三次握手的第三个部分(确认)与一个HTTP请求报文结合起来发送到该TCP连接。

http://blog.csdn.net/sinat_21455985/article/details/53508115  (访问Web全过程)

2.1.3HTTP报文格式

2.1.3.1请求报文

进程通信和HTTP协议_第2张图片

HTTP/1.0一般为非持久连接,且其没有host字段
HTTP/1.1一般为持久连接
方法字段:
①GET:请求获取Request-URI(URI:通用资源标识符,URL是其子集,URI注重的是标识,而URL强调的是位置,可以将URL看成原始的URI)所标识的资源,使用GET方法时实体为空
②POST:在Request-URI所标识的资源后附加新的数据;支持HTML表单提交,表单中有用户添入的数据,这些数据会发送到服务器端,由服务器存储至某位置(用表单生成的请求报文不需要使用POST方法)
③HEAD:请求Request-URI所标识的资源响应消息报头,HEAD方法可以在响应时不返回消息体
④PUT:与GET相反,请求服务器存储一个资源,并用Request-URI做为其标识
⑤DELETE:请求删除URL指向的资源
⑥OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项
⑦TRACE:跟踪请求要经过的防火墙、代理或网关等,主要用于测试或诊断
⑧CONNECT保留将来使用

进程通信和HTTP协议_第3张图片

2.1.3.2响应报文

进程通信和HTTP协议_第4张图片

常见状态码说明:
· 200 OK:请求成功,信息包含在返回的响应报文中
· 301 Moved Permanently:请求的对象已经被永久转移了,新的URL定义在响应报文的Location:首部行中指定。客户机软件自动用信道URL获取该对象
· 400 Bad Request:一个通用差错代码,指示该请求不能被服务器理解
· 404 Not Found:被请求的文档不在服务器上

· 505 HTTP Version Not Supported:服务器不支持请求报文使用的HTTP协议版本

进程通信和HTTP协议_第5张图片

http://blog.csdn.net/wzx19840423/article/details/47811559 (HTTP报文详解)


你可能感兴趣的:(进程通信和HTTP协议)