• 网络-笔记


    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  服务器当前不能处理客户端的请求,一段时间后可能恢复正常

    500 一般是什么问题,如何解决?

    500 Internal Server Error 内部服务错误
    1. a、编程语言语法错误,web脚本错误
    2. b、并发高时,因为系统资源限制,而不能打开过多的文件

    解决思路

    1. a、查看nginx、php的错误日志文件,从而看出端倪
    2. b、如果是too many open files,修改nginx的worker_rlimit_nofile参数,使用ulimit查看系 统打开文件限制,修改/etc/security/limits.conf,还是出现too many open files,那就要考虑 做负载均衡,把流量分散到不同服务器上去了
    3. c、如果是脚本的问题,则需要修复脚本错误,优化代码

    503出现一般是什么问题?

    503是服务临时不可用。
    可能原因:nginx配置了频率限制,client端又超过了配置的限制,比如单个ip并发设置过小。

    nginx返回502,504各是什么问题,怎么解决?

    502 Bad Gateway        服务器尝试执行请求时,从上游服务器接收到无效的响应
            查看nginx、php-fpm是否启动及报错
    504 Bad Gateway timeout        请求超时
            
    1. fastcgi_connect_timeout 300 //指定连接到后端 FastCGI 的超时时间.
    2. fastcgi_send_timeout 300; //向 FastCGI 传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间.
    3. fastcgi_read_timeout 300; //接收 FastCGI 应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间.

    网络分层和各层有啥协议

    应用层:应用层协议定义的是应用进程间通信和交互的规则(http,ftp,dns)
    运输层:运输层的任务就是负责向 两台主机中进程之间的通信 提供 通用的数据传输 服务(
    tcp,udp)
    网络层:把运输层产生的报文段或用户数据报封装成 分组 进行传送(ip)
    数据链路层:将网络层交下来的 IP 数据报组装成帧,并在两个相邻结点间的链路上传送

    物理层:利用物理媒体以 比特 形式传送数据

    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关闭服务

  • 相关阅读:
    pytest测试框架搭建
    网络安全笔记-加解密算法
    nodejs处理图片工具sharp
    玩转Mysql系列 - 第19篇:游标详解
    Linux下虚拟网卡的基本命令
    【面试高频题】难度 1.5/5,LCS 模板题
    分布式任务调度Schedulerx2.0工作原理
    SpringBoot2.7.4整合Redis
    JavaScript入门
    前端开发:CSS阴影效果属性box-shadow详解
  • 原文地址:https://blog.csdn.net/qq_41564405/article/details/126322679