zoukankan      html  css  js  c++  java
  • 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包

        源码编译安装

  • 相关阅读:
    关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。
    WPF中的逻辑树和可视化树
    StopWatch
    【转】Oracle imp 总是不停地重复闪烁
    Ubuntu下借助URLOS实现快速安装DzzOffice企业办公套件
    linux下使用URLOS搭建nextcloud私有云盘系统
    在Debian下利用URLOS快速安装SqlServer2017
    使用URLOS 五分钟安装rTorrent (轻量级优秀BT/PT客户端)
    URLOS开发基础教程——docker容器的使用方法
    使用URLOS在linux系统中极速部署NFS共享存储服务
  • 原文地址:https://www.cnblogs.com/sq5288/p/10791858.html
Copyright © 2011-2022 走看看