• 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、记录日志

  • 相关阅读:
    让思考成为一种习惯:今年,我大四了
    asp.net core源码飘香:Logging组件
    asp.net core源码飘香:Options组件
    asp.net core源码飘香:Configuration组件
    asp.net core源码飘香:从Hosting开始
    webpack code split实现原理
    css specificity
    todo:read
    React Render Props 模式
    recompose mapProps 函数指南
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/12872512.html
Copyright © 2020-2023  润新知