zoukankan      html  css  js  c++  java
  • Linux学习73 http协议及web服务基础

    一、Web Service

      1、应用层:http,https

        a、实现某类具体应用

      2、传输层协议:TCP,UDP,SCTP

      3、IANA(互联网地址名称分配机构)

        a、0-1023:众所周知,永久地分配给固定的应用使用,特权端口

        b、1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用;3306/tcp,11211/tcp

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

      4、BSD Socket:IPC的一种实现,允许位于不同主机(也可以是同一主机)上的进程之间进行通信;

          

        a、Socket API(封装了内核中的socket通信相关的系统调用,通过库调用提供给程序员)

          (1)、基本TCP客户/服务器程序的套接字函数

            

              1)、服务端过程

              socket:向内核系统调用或库调用请求创建套接字。

              bind:如果创建成功了就绑定在这个套接字上

              listen:开始监听套接字

              accept:负责接收客户端请求,如果没有接收到就处于阻塞状态,一直阻塞到有客户端访问。可以用htop命令来追踪一个进程打开的系统调用。

              2)、客户端

              socket:请求创建一个套接字

              connect:向服务端发送请求这个套接字

            (2)、SOCK_STREAM:tcp套接字

            (3)、SOCK_DGRAM:UDP套接字

            (4)、SOCK_RAW:raw套接字,也称作裸套接字

        b、根据套接字所使用的地址格式,socket Domain:

          (1)、AF_INET:Address Family,IPv4的地址

          (2)、AF_INET6:ipv6

          (3)、AF_UNIX:同一主机上的不同进程间基于socket套接字通信使用的一种地址:Unix_SOCK

      4、TCP FSM:CLOSED,LISTEN,SYN_SENT,SYN_RECV,ESTABLISHED,FIN_WAIT,CLOSE_WAIT,FIN_WAIT2,LAST_ACK,TIMEWAIT,CLOSED

      5、TCP协议的特性

        a、建立连接:三次握手

        b、将数据打包成段:校验和(CRC32),MTU

        c、确认,重传及超时

        d、排序:逻辑序号

        e、流量控制:滑动窗口算法

    二、http

      1、http(hyper text transfer protocol):超文本传输协议,应用层协议,80/tcp

        a、html(hyper text mark language):超文本标记语言,编程语言

          

         b、协议版本

          (1)、http/0.9,原型版本,功能捡漏

          (2)、http/1.0:cache,MIME,method

            1)、MIME:Multipurpose Internet Mail Extesion

            2)、method:GET,POST,HEAD,PUT,DELETE,TRACE,OPTIONS

          (3)、http/1.1:增强了缓存功能。

            spdy

          (4)、http/2.0

            rfc

      2、工作模式

        a、http请求报文:http request

        b、http响应报文:http response

        c、一次请求和一次响应的模式就叫做一次http事务

        d、web资源:web resource

          (1)、静态资源(无须服务端做出额外处理):.jpg,.png,.gif,.html,.txt,.js,.css,.mp3...

          (2)、动态资源(服务端需要通过执行程序做出处理,发送给客户端的是程序的运行结果):.php,.jsp

          (3)、注意:一个页面中展示的资源可能有多个,每个资源都需要单独请求

          (4)、资源的标识机制:URL

            1)Uniform Resource Locator:用于描述服务器某特定资源的位置

              例如:http://www.sina.com.cn/index.html

            2)、Scheme://Server:[:port][/PATH/TO/SOME_RESOURCE]

      3、一次完整的http请求处理过程:

        a、建立或处理连接:接收请求或拒绝请求

        b、接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求过程

        c、处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息

        d、访问资源:获取请求报文中请求的资源

        e、构建响应报文

        f、发送响应报文

        g、记录日志

  • 相关阅读:
    前沿技术解密——VirtualDOM
    Ques核心思想——CSS Namespace
    Unix Pipes to Javascript Pipes
    Road to the future——伪MVVM库Q.js
    聊聊CSS postproccessors
    【译】十款性能最佳的压缩算法
    Kafka Streams开发入门(9)
    Kafka Streams开发入门(8)
    【译】Kafka Producer Sticky Partitioner
    【译】99th Percentile Latency at Scale with Apache Kafka
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/12872512.html
Copyright © 2011-2022 走看看