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

原文地址:https://www.cnblogs.com/Presley-lpc/p/12872512.html