001-tcp和socket以及web
2016-01-15 00:43
369 查看
001-tcp和socket以及web
PortIANA: 0-1023:众所周知,永久地分配给固定的应用使用,特权端口; 1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用;3306/tcp, 11211/tcp; 41952+:客户端程序随机使用的端口,动态端口,或私有端口;其范围定义在/proc/sys/net/ipv4/ip_local_port_range;
BSD Socket
BSD Socket:IPC的一种实现,允许位于不同主机(也可以是同一主机)上的进程之间进行通信; 分类一: Socket API(封装了内核中的socket通信相关的系统调用) SOCK_STREAM: tcp套接字 SOCK_DGRAM: UDP套接字 SOCK_RAW:raw套按字 分类二: 根据套按字所使用的地址格式,Socket Domain: AF_INET:Address Family,IPv4 AF_INET6:ipv6 AF_UNIX:同一主机上的不同进程间基于socket套接字通信使用的一种地址;Unix_SOCK
server-client model
过程分析:
服务器根据地址类型(ipv4,ipv6)、socket类型、协议创建socket文件
服务器为socket绑定ip地址和端口号
服务器socket监听端口号请求,随时准备接收客户端发来的连接,这时候服务器的socket并没有被打开
客户端创建socket
客户端打开socket,根据服务器ip地址和端口号试图连接服务器socket
服务器socket接收到客户端socket请求,被动打开,开始接收客户端请求,直到客户端返回连接信息。这时候socket进入阻塞状态,所谓阻塞即accept()方法一直到客户端返回连接信息后才返回,开始接收下一个客户端谅解请求
客户端连接成功,向服务器发送连接状态信息
服务器accept方法返回,连接成功
客户端向socket写入信息
服务器从socket读入信息
服务器向socket写入信息
客户端从socket读入信息
…
客户端关闭
服务器端读取到关闭请求
服务器端关闭并继续等待其他客户端请求
http://www.tutorialspoint.com/unix_sockets/client_server_model.htm
TCP connection establishment process
http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh.htm
TCP protocol features
建立连接:三次握手; 将数据打包成段:校验和(CRC32) 确认、重传及超时; 排序:逻辑序号; 流量控制:滑动窗口算法; 拥塞控制:慢启动和拥塞避免算法;
HTTP
应用层协议 hyper text transfer protocol 80端口 传输层使用tcp协议 协议版本: http/0.9:原型版本,功能简陋 http/1.0: cache, MIME, method, MIME:Multipurpose Internet Mail Extesion method:GET, POST, HEAD,PUT, DELETE,TRACE, OPTIONS http/1.1:增强了缓存功能; spdy http/2.0:
Web Resource
static:.jpg, .png, .gif, .html, txt, .js, .css, .mp3, .avi,无需服务器处理,每个用户都会得到相同的结果 dynamic:.php, .jsp,需要服务器处理后返回给不同的用户
相关文章推荐
- java-模拟tomcat服务器
- Linux socket 初步
- RPC failed; result=22, HTTP code = 411
- HTTP Header 属性列表
- nginx中http核心模块的配置指令2
- nginx中http核心模块的配置指令3
- nginx中http核心模块的配置指令4
- nginx中http的fastcgi模块的配置指令1
- java socket 注意的地方
- java socket 注意的地方
- 如何在 Linux 中快速地通过 HTTP 提供文件访问服务
- 深入HTTP head的使用详解
- ASP 中使用 HTTP 协议发送参数详解
- C#基于socket模拟http请求的方法
- http www安全必备知识
- 简单的Ruby中的Socket编程教程