Linux:Day20(下) http基础

Web Service

  Port number:

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

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

    41952+:客户端程序随机使用的端口;动态端口,或私有端口;

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

    SOCK_STREAM:tcp套接字

    SOCK_DGRAM:udp套接字

    SOCK_RAW:裸套接字

    

    TCP协议的特性:

      建立连接:三次握手

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

      确认、重传以及超时;

      排序:逻辑序号

      流量控制:滑动窗口算法

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

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

      AF_INET:Address Family,IPv4

      AF_INET6:IPv6

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

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

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

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

    套接字相关的系统调用:

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

      bind():绑定

      listen():监听

      accept():接收请求

      connect():请求连接建立

      write():发送

      read():接收

        send(),recv(),sendto(),recvfrom()

  http:hyper text transfer protocol

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

    CSS:Cascading Style Sheet

    js:javascript

    MIME:Multipurpose Internet Mail Extesion

  Web资源:web resource

    静态文件:.jpg  .gfi  .html  .txt  .js  .css  .mp3  .avi

    动态文件:.php  .jsp

    媒体:

      媒体类型(MIME类型):major/minor

        text/html

        text/plain

        image/jpeg

        image/gif

  URI:Uniform Resource Identifier

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

    URN:Uniform Resource Naming

一次完整的http请求过程:

  (1) 建立或处理连接;接收请求或拒绝请求 

  (2) 接收请求;

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

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

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

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

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

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

        事件驱动:event-driven

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

      

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

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

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

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

      (a) docroot

      (b) alias

      (c) 虚拟主机docroot

      (d) 用户家目录docroot

  (5) 构建响应报文

    资源的MIME类型:

      显示分类

      魔法分类

      协商分类

    URL重定向:

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

  (6) 发送响应报文

  (7) 记录日志

http服务器程序:

  httpd(apache)

  nginx

  lighttpd

  应用程序服务器:

    IIS

    tomcat,jetty,jboss,resin

    webshpere,weblogic,oc4j

http的安装配置和使用:

  httpd:apache

    a patchy server = apache

    ASF:apache software foundation

  httpd的特性:

    高度模块化:core + modules

    DSO:Dynamic Shared Object

    MPM:Multipath Processing Modules

      prefork:多进程模型,每个进程响应一个请求;

        一个主进程:负责生成n个子进程,子进程也称为工作进程,每个子进程处理一个用户请求;即便没有用户请求,也会预先生成多个空闲进程,随时等待请求到达;最大不会超过1024个;

      worker:多线程模型(多进程生成,一个进程生成多个线程),一个线程响应一个请求;

      event:事件驱动模型,一个线程响应多个请求;

  安装httpd:

    rpm包

    源码编译安装

原文地址:https://www.cnblogs.com/sq5288/p/10791858.html