首页 > 代码库 > socket和http协议

socket和http协议

web  service  之http基础原理

web   service

mac:设备与设备之间的通信,主机与路由器,路由器与路由器

ip:主机与主机

tcp/utp:传输层:提供进程地址

tcp:传输控制协议,面向连接的协议,通信前需要建立虚拟链路,建立三次握手

utp:无连接的协议:

socket:套接字:IPC的一种实现通信,允许位于同一主机或不同主机间进程之间进行通信,数据交换,socket  api

SOCK_SITEAM:tcp套接字

SOCK_DGRAM:udp套接字

SOCK_RAW:裸套接字

0-1023:永久的分配给固定的应用使用,22/tcp(ssh),只能使用root来启动

1024-41951:为注册端口,要求不严格,分配给程序注册为某应用使用

41951+:客户端程序随机端口:动态端口,私有端口

 /proc/sys/net/ipv4/ip_local_port_range   --用于向外连接的端口范围

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

      AF_INET:address  Family,IPv4

      AF_unix:同一个主机间的通信(客户机和主机在同一主机)不同进程

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

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

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

套接字相关的系统调用:

       socket(0:创建一个套接字

       bind():绑定

       listen():监听

       accept():接收请求

       connect():请求连接建立

       write():发动

       read():接收


http协议

http:hyper  text  transfer protocol    超文本标记语言

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

       css:Cascading   Style  sheet

       js:javascript(在浏览器执行的脚本)

      MIME:多用途互联网扩展----实现通过文本格式发送非文本格式数据

web资源:web  resource

     静态文件:jpg,.gif,.html,.txt,.js,.css,mp3,

     动态文件:-php,jsp

     媒体:

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

URL:是Uniform Resoure Locator(统一资源定位器)的缩写。就是WWW页的地址。

其URL地址格式排列为:scheme://host:Port/path
一次完整的http请求过程:

    (1):建立连接服务端接收客户端请求:

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

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

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

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

         复用I/O结构:一个进程处理多个用户请求

                     多线程模型: 一个进程生成多个线程,线程处理用户请求

          复用的多进程I/O结构,生成多个进程,每个进程生成线程处理多个请求          

    (3):处理请求:对请求的资源进程解析,并获取请求的资源以及请求方法等相关信息

                      元数据;请求报文首部

                                 <methed>  <URL> <version>

                                 host:www.baidu.com  请求的主机名称

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

                     web服务器:即存放了web资源的服务器,负责向请求者提供对方请求的静态资源

                     或动态运行后生成的资源,这些资源放置于本地文件系统某路径下,,


    (5):构建相应报文

    (6):发送响应报文

    (7):记录日志

 


socket和http协议