Get和Post的异同点
get 请求一般用于向服务端获取数据,post 一般向服务端提交数据。
get 传输的参数在 url 中,传递参数大小有限制,post 没有大小限制, get 不安全,post 安全性比get高
三次握手
首客户端发送连接请求报文,服务端接受连接后回复ACK报文,并为这次连接分配资源。
客户端接收到ACK报文后也向服务端发生ACK报文,并分配资源
四次挥手
当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到FIN只是意味着
一不会再收到数据了,但是这个连接上仍然能够发送数据,直到这一方也发送了FIN.
首先进行关闭的一方执行主动关闭,另一方执行被动关闭.第一个关闭的最后等待2MSL
常见状态代码、状态描述、说明:
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found 请求资源不存在,eg:输入了错误的URL
500 Internal Server Error 服务器发生不可预期的错误
503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
- a、编程语言语法错误,web脚本错误
- b、并发高时,因为系统资源限制,而不能打开过多的文件
解决思路
- a、查看nginx、php的错误日志文件,从而看出端倪
- b、如果是too many open files,修改nginx的worker_rlimit_nofile参数,使用ulimit查看系 统打开文件限制,修改/etc/security/limits.conf,还是出现too many open files,那就要考虑 做负载均衡,把流量分散到不同服务器上去了
- c、如果是脚本的问题,则需要修复脚本错误,优化代码
- fastcgi_connect_timeout 300 //指定连接到后端 FastCGI 的超时时间.
- fastcgi_send_timeout 300; //向 FastCGI 传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间.
- fastcgi_read_timeout 300; //接收 FastCGI 应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间.
物理层:利用物理媒体以 比特 形式传送数据

Tcp和udp、scoket、websocket
TCP是面向连接的一种传输控制协议。连接之后,客户端和服务器可以互相发送和接收消息,在客户端或者服务器没有主动断开之前,连接一直存在,故称为长连接。
特点:连接有耗时,传输数据无大小限制,准确可靠,先发先至。
UDP是无连接的用户数据报协议,所传输数据之前不需要交换信息,没有握手建立连接的过程,只需要直接将对应的数据发送到指定的地址和端口就行。
特点:不稳定,速度快,可广播,一般数据包限定64KB之内,先发未必先至。
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,常用的Socket类型有两种:流式Socket和数据报式Socket,流式是一种面向连接的Socket,针对于面向连接的TCP服务应用,数据报式Socket是一种无连接的Socket,针对于无连接的UDP服务应用
websocket基于TCP协议服务端解析后开始建立TCP连接,每次请求都要上传header的冗余
Socket
Socket是进程通讯的一种方式, 在用户进程与TCP/IP协议之间充当中间人.
int socket(int domain, int type, int protocol); 创建socket描述符
domain 网络层相关协议 type 信息传送方式 protocol 运输层相关协议,如果前两个都确定了,系统就可以自动选择协议了。
bind()绑定实际地址
listen()、connect() 主机监听、从机链接
accept 建立链接
read和write函数,读写
close关闭服务