Web Service

    传输层:提供进程地址

Port number

tcp:传输控制协议,面面相连接的协议;通信前需要建立虚拟链路;结束后拆除链路;

0-65535

udp:User Dategram Protocol,无连接的协议;

0-65535

        

        IANA:

    0-1023:众所周知,永久的分配给固定的应用使用,特权端口;22/tcp(ssh),80/tcp(http),443/tcp(https)

    1024-41951:亦为注册端口,但要求并不是特别严格,分配给程序注册为某应用使用,11211/tcp,11211/udp(memcached),3306/tcp(mysql)

    41952+:客户端程序随机使用的端口;动态端口或者私有端口;其范围的定义:/proc/sys/net/ipv4/ip_local_port_range

Socket:IPC的一种实现,允许位于不同主机(甚至同一主机)上不同进行之间进行通信;数据交换;Socket API

SOCK_STREAM:tcp套接字

SOCK_DGRAM:udp套接字

SOCK_RAW:裸套接字


IPV4:

    分类:

A:1-127

B:128-191

C:192-223

D:组播;224-239

E:240-254


    私有地址:

    A:10.0.0.0/8

    B:172.16.0.0/16-172.31.0.0/16

    C:192.168.0.0/24-192.168.255.0/24


    TCP协议的特性:

建立连接:三次握手

将数据打包成段:校验和(CRC-32)

确认、重传以及超时;

排序:逻辑序号

流量控制:滑动窗口算法

拥塞控制:慢启动和拥塞避免算法


    Socket Domain:(根据其所使用的地址):

AF_INET:Address Family,IPv4

AF_INET6:IPv6

AF_UNIX:同一主机上不同进程通信时使用;


    每类套接字都至少提供了两种socket:流(tcp),数据报(udp)

    流:可靠地传输、面向连接、无边界;

    数据报:不可靠传递、有边界、无连接;


    套接字相关的系统调用:

socke():创建一个套接字;

bind():绑定

listen():监听

accept():接受请求

connect():请求连接建立

write():发送

read():接收




http(1):hyper text transfer protocol

html:编程语言,超文本标记语言;

MIME:

        工作机制:

http请求

http响应

        媒体:

媒体类型(MIME类型):

                            major/minor(主类型/次类型)

    text/html:超文本文档

    text/plain:纯文本文档

    p_w_picpath/jpeg

    p_w_picpath/gif


URI:Uniform Resource Identifier

URL:Uniform Resorce Locator,用于描述某服务器某特定资源的位置

Scheme://Server:Port/path/to/resource

URN:

                http协议版本:

HTTP/0.9:原型版本,功能简陋

HTTP/1.0:第一个广泛使用的版本,支持MIME

HTTP/1.1:增强了缓存

spdy

HTTP/2.0


一次完整的http请求过程:

(1)建立或处理连接:接受请求或拒绝请求

(2)接受请求:

接收来自于网络的请求报文中对某资源的一次请求的过程;

                        并发访问响应模型(Web I/O):

单进程I/O结构:只启动一个进程处理用户请求,而且每次只处理一个;多个请求被串行响应;

多进程I/O结构:并行启动多个进程;每个进程响应一个请求;

复用I/O结构:一个进程响应n个请求;

多线程模型:一个进程生成N个线程,每个线程响应一个用户请求

    事件驱动:event-driven

复用的多进程I/O结构:启动多个进程,每个进程响应n个请求;

                (3)处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息

                元数据:请求报文首部

<method>:请求方法 <URL>:请求资源 <VERSION>:协议版本

    Host:www.baidu.com 请求的主机名称

    Connection:

(4)访问资源:获取请求报文中请求的资源

    

                web服务器,即存放了web资源的服务器,负责请求者提供对方请求的静态资源,或动态运行后生成的资源;这些资源放置于本地文件系统某路径下,此路径通常被称为DocRoot

                /var/www/html/


web服务器资源路径映射方式:

(a)docroot

(b)alias路径别名

(c)虚拟主机docroot

(d)用户家目录docroot


(5)构建响应报文

                        资源的MIME类型:

显示分类

魔法分类

协商分类

                        URL重定向:

    web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径;


(6)发送响应报文

资源请求两种方式:

持久:1.1版本开始默认

非持久:1.0版本

(7)记录日志

用户请求的资源和时间记录到日志