
网络
文章平均质量分 75
robch
Stay foolish Stay hungry!
展开
-
grpc 和 http 的区别---二进制vsJSON编码
gRPC 和 HTTP 是两种广泛使用的通信协议,各自适用于不同的场景。原创 2025-01-31 21:51:27 · 1547 阅读 · 0 评论 -
TCP粘包问题以及解决方法
这是因为接收方先把收到的数据放在系统接收缓冲区,用户进程从该缓冲区取数据,若下一包数据到达时前一包数据尚未被用户进程取走,则下一包数据放到系统接收缓冲区时就接到前一包数据之后,而用户进程根据预先设定的缓冲区大小从系统接收缓冲区取数据,这样就一次取到了多包数据。可以将真实数据,做成一个固定长度的报头,客户端发送给服务端,服务端可以接受报头,然后对报头进行解包,获取真实数据的长度,进行接收即可。TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。转载 2022-09-19 15:26:27 · 3834 阅读 · 0 评论 -
TCP 为什么是三次握手,而不是两次或四次?
tcp 三次握手,四次挥手, 为什么 A 要先进入TIME-WAIT状态,等待2MSL时间后才进入CLOSED状态转载 2022-07-24 17:52:23 · 270 阅读 · 0 评论 -
springboot 服务端根据请求头的 Content-Type的不同,处理方式不同
PostMan 发送请求:Content-Type:application/x-www-form-urlencoded{ "appCode":"StarDB", "age":100}后端:@PostMapping("/")public String create(OrderCreateDTO dto) { log.info("In the create: appCode = {}", dto.getAppCode()); log.info("In the crea原创 2022-03-31 16:49:21 · 3813 阅读 · 0 评论 -
3-2.http 请求头Content-Type 为application/x-www-form-urlencoded
本文测试 Content-Type 为 multipart/form-data 的请求详情:前端页面模仿用户输入:用户名、密码、性别、爱好、城市、等,可以看到请求头中前端的HTML内容:后端的打印:后端是 Django 项目,没有引入DjangoRestFrameworkINFO 2022-03-29 13:27:59,690 view 19440 140219944793856 In helloFrontLabelBase, To test the text/radio/checkbox/fil原创 2022-03-29 14:12:12 · 7672 阅读 · 0 评论 -
3-3.http 请求头Content-Type 为 multipart/form-data
本文测试 Content-Type 为 multipart/form-data 的请求详情:前端页面模仿用户输入:用户名、密码、性别、爱好、城市、上次文件等,可以看到请求头中:Content-Typemultipart/form-data; boundary=---------------------------217751028913459671582016487482消息头:请求:...原创 2022-03-29 13:10:17 · 10848 阅读 · 0 评论 -
nginx 反向代理
nginx 反向代理:[root@YZ2-25-207-92 logs]# cat /etc/nginx/conf.d/default.conf## The default server#server { listen 8080 default_server; listen [::]:8080 default_server; server_name _; root /usr/share/nginx/html; #原创 2022-01-10 19:31:40 · 1358 阅读 · 0 评论 -
IPV6 TEST
客户端没有公网 IPV4 ,只有 vpc 内网和 ipv6;服务端有公网 IP 116.x.x.140 、 有 vpc 内网 和 ipv6现在在客户端执行 curl,客户端1:没有公网 IPV4 ,只有 vpc 内网和 ipv6;[root@dbs-ipv6-test ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450 inet 10.0.0.154 netmask 255.原创 2021-11-19 20:51:32 · 3763 阅读 · 0 评论 -
Linux网络收包总览
因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。我们今天用图解的方式,来深度理解一下在Linux下网络包的接收过程。还是按照惯例来借用一段最简单的代码开始思考。为了简单起见,我们用udp来举例,如下:int main(){int serverSocketFd = socket(AF_IN转载 2021-07-13 16:21:16 · 498 阅读 · 0 评论 -
HTTP协议细节集锦:Accept-Language 和 CORS 和 WebSocket
对于最早期的HTTP/1.0协议,每次发送一个HTTP请求,客户端都需要先创建一个新的TCP连接,然后,收到服务器响应后,关闭这个TCP连接。由于建立TCP连接就比较耗时,因此,为了提高效率,HTTP/1.1协议允许在一个TCP连接中反复发送-响应,这样就能大大提高效率。(HTTP 1.1允许浏览器和服务器在同一个TCP连接上反复发送、接收多个HTTP请求和响应,这样就大大提高了传输效率。)因为HTTP协议是一个请求-响应协议,客户端在发送了一个HTTP请求后,必须等待服务器响应后,才能发送下一个请求,原创 2021-05-07 11:31:06 · 2010 阅读 · 0 评论 -
重学TCP/IP协议和三次握手四次挥手
文章目录 计算机网络体系结构网络协议是什么?为什么要对网络协议分层? TCP/IP 协议族应用层运输层网络层数据链路层物理层TCP/IP 协议族 TCP的三次握手四次挥手TCP报文的头部结构三次握手四次挥手 常见面试题为什么TCP连接的时候是3次?2次不可以吗?为什么TCP连接的时候是3次,关闭的时候却是4次?为什么客户端发出第四次挥手的确认报文后要等2MSL的时间才能释放TCP连接?如果已经建立了连接,但是客户端突然出现故障了怎......转载 2020-10-14 14:02:14 · 759 阅读 · 1 评论 -
nginx+uWSGI+django 处理请求详解
请求从 Nginx 到 uWSGI 到 django 交互概览作为python web开发,我们首先要弄清楚,到底一个请求过来,发生了什么事,请求的传递是怎么样完成的,由nginx是怎么转发到uwsgi, uwsgi又是怎样把请求传给到我们的框架(django or falsk)由我们自己写的代码处理,返回数据给客户端的。因此我作了以下一个粗略的流程图:在此之前,先确认下概念:uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议以下我会逐个步骤从下往上详细讲解,并附上代码和配原创 2020-08-25 09:52:37 · 806 阅读 · 0 评论 -
用 telnet 访问网站发送 HTTP 请求
我们平时对 telnet 用的最多的应该是 telnet 来快速测试服务端口是否可用,其实 telnet 还可以被用来发送 HTTP 请求,是的,没听错,发送 HTTP 请求!1.首先启动一个 web server:root@robert-Ubuntu:/media/sf_WorkSpace/HelloNG/src/testcode/djangoTest/robappdj# python manage.py runserver 0.0.0.0:8082------In the manage.py,原创 2020-08-13 20:12:53 · 5145 阅读 · 0 评论 -
用 Django 的 session 验证机制也可以做到前后端的完全分离
用 Django 的 session 验证机制也可以做到,前后端的完全分离。从回答下面的问题,引出咱们的正题。Django 整个认证过程中,从后端到前端, session id是怎么被触发写入cookie 的?后端代码调用 response.set_cookie() 就会在响应头里写 Set-Cookie: sessionid=xxxx;Max-Age=1209600;Path=/ ,浏览器...原创 2019-11-03 17:49:35 · 2555 阅读 · 0 评论 -
Python socket 手写server 让浏览器直接访问,从而深刻理解 HTTP 协议
本文主要是为了测试让浏览器和 纯 socket 写的 server 进行通信,从而理解 HTTP 协议的规范import socketsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.bind(('192.168.56.101', 8008))sock.listen(5)while True: # 等待连...原创 2019-10-28 14:53:30 · 1881 阅读 · 1 评论 -
Python socket 访问网站发送 HTTP POST请求,从而深刻理解 HTTP 协议
用最原始的包 socket 来居然可以访问网站模拟发送 POST 请求,这是对最大的收获。更进一步的参考 https://www.jianshu.com/p/f196c74e72ddimport socketinput_dict = {'name':'cheng', 'age':23}s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s....原创 2019-08-02 12:14:46 · 6575 阅读 · 1 评论 -
Nagle VS Cork
Nagle VS CorkNagle算法是以他的发明人John Nagle的名字命名的,它用于自动连接许多的小缓冲器消息;这一过程(称为nagling)通过减少必须发送包的个数来增加网络软件系统的效率。中文名: Nagle算法 发明人: John Nagle 用 于: 自动连接许多的小缓冲器消息 优 点: 减少拥塞控制目录 1 简介 2 算法简...原创 2018-08-24 10:19:02 · 277 阅读 · 0 评论