端口
特权端口: 0-1023 (root权限)
非特权: 1024-41951(一般服务使用)
客户端端口: 41952+ (linux /proc/sys/net/ipv4/ip_local_port_range
)
HTTP协议
HTTP 传输数据的过程
HTTP为应用层协议
image.png
HTTP在是怎样建立连接的
image.png
TCP
三次握手
滑动窗口:可能Client 和 server的网卡的传输速率不一样,接收发需要给发送发一个滑动窗口,按照窗口大小发送数据
序列号:序列号,如果一个数据包太大,被分割成很多快,则通过序列号,把包排成序列。
慢启动
socket 种类
TCP类型: IP:PORT
UDP类型: IP:PORT
UP-SOCKET: unix-socket (文件)
HTTP协议的种类
HTTP:0.9: 原始简陋,只能传输文件 GET
HTTP:1.0: 增加了MIME和method。
MIME:可以传输非文本内容。把非文本内容压缩成文本内容,然后在服务端,把非文本的内容转换成文本内容。
Method: GET ,PUT ,DELETE,POST .....
HTTP1.1: 比HTTP1.0增加了缓存功能
HTTP 超文本传输协议
因为HTTP协议早期传输文本,是传输html语言的。
html:超文本标记语言
客户端: 发送HTTP请求
服务端: 响应HTTP
每一个资源都有一个HTTP请求,通过URL定位访问的资源。
URL:统一资源定位符
静态资源: 在客户端进行解析,.html,.jpg,.png,....
动态资源: (在服务端进行解析,返回结果给客户端).php,.jsp,.....
请求过程
- 服务端是否接收请求
- 服务端接收请求
- 服务端处理请求(在磁盘上读取,客户端请求的文件)
- 服务端创建响应
- 服务端响应请求
- 记录日志
并发概念
![](https://img.haomeiwen.com/i18572346/b6bca2adf19fd4db.png)
当多个客户端连接时,服务端将客户端信息保存在内存中。并创建socket,此为一个会话
所以并发连接对内存消耗很大
代理缓存说明
![](https://img.haomeiwen.com/i18572346/896aa915187fc0b7.png)
没有代理,用户请求的URL,会在服务端的磁盘上找到。并返回给客户端
代理缓存:用户请求的URL,server端把响应给用户的数据,缓存到proxy上。这样,接下来如果相同的数据,客户端直接从proxy的缓存拿数据就会快很多
proxy_buffer:客户端往服务端写数据,先写到prxoy的缓冲中。由proxy向服务端写入数据
IO模型概念介绍
多进程模式: 一个父进程生成多个子进程,进程响应用户请求
复合模式:一个进程,生成多个线程,线程响应请求
事件驱动型: 一个进程响应n个请求
复合多进程:一个进程,生成n个子进程,子进程(通过复合型或者事件驱动型)响应请求
网友评论