网络请求相关内容总结

tp框架网络请求 获取URL的域名信息(如http://baidu.com)获取URL中的scheme参数(http或者https)获取当前URL的pathinfo信息(包含URL后缀)获取当前完整的url(包含QUERY_STRING)input()是设置和获取输入信息的核心实现函数。获取当前的请求类型(GET/POST/CLI)获取URL的访问后缀(.html或.php)对服务器端而言,指客户端发起的请求信息。获取或设置当前的请求内容content。获取或设置当前请求的环境变量信息。获取或设置当前请求的header。 阅读详情

网络请求相关内容总结

网络数据传输,熟悉多线程、Socket网络编程、熟悉TCP、UDP、HTTP等协议

  • 网络编程概述:

    • 网络模型:
      • OSI模型
        • 应用层
        • 表示层
        • 会话层
        • 传输层
        • 网络层
        • 数据连接层
        • 物理层
      • TCP/IP模型
        • 应用层
        • 传输层
        • 网际层
        • 主机至网络层
    • 网络通讯要素
      • IP地址
      • 端口号
      • 传输协议
    • 网络通讯前提:
      • 找到对方IP
      • 数据要发送到指定端口。为了标示不同的应用程序,所以给这些网络应用程序都用数字进行标示这个表示就叫端口
      • 定义通信规则。这个规则称为通信协议,国际组织定义了通用协议TCP/IP
  • TCP和UDP的区别:

    • UDP协议:
      面向无连接
      每个数据报的大小在限制在64k内
      因为是面向无连接,所以是不可靠协议
      不需要建立连接,速度快
    • TCP协议:
      必须建立连接,形成传输数据的通道
      在连接中可进行大数据量传输
      通过三次握手完成连接,是可靠协议
      必须建立连接,效率会稍低

      三次握手:

      • 第一次:我问你:在么?
      • 第二次:你回答:在。
      • 第三次:我反馈:哦,我知道你在。
  • Socket:

    • Socket就是为网络服务提供的一种机制
    • 通信的两端都有Socket
    • 网络通信其实就是Socket间的通信
    • 数据在两个Socket间通过IO传输
    • 玩Socket主要就是记住流程,代码查文档就行
  • UDP(User Datagram Protocol):用户数据协议

    • UDP概述:
      需要DatagramSocket与DatagramPacket对象来实现UDP协议传输数据
      UDP协议是一种面向无连接的协议。面向无连接的协议指的是正式通信前不必与对方先建立连接,不管对方连接状态就直接发送数据。
    • UDP协议开发步骤:
      • 发送端:
        • 建立DatagramSocket服务;
        • 提供数据,并将数据封装到字节数组中;
        • 创建DatagramPacket数据包,并把数据封装到包中,同时指定接收端IP和接收端口
        • 通过Socket服务,利用send方法将数据包发送出去;
        • 关闭DatagramSocket和DatagramPacket服务。
      • 接收端:
        • 建立DatagramSocket服务,并监听一个端口;
        • 定义一个字节数组和一个数据包,同时将数组封装进数据包;
        • DatagramPacket的receive方法,将接收的数据存入定义好的数据包;
        • 通过DatagramPacke关闭的方法,获取发送数据包中的信息;
        • 关闭DatagramSocket和DatagramPacket服务。
    • UDP协议的Demo(必须掌握):
      • 发送端:
        java
        class UDPSend {
        public static void main(String[] args) throws Exception {
        DatagramSocket ds = new DatagramSocket();
        byte[] buf = "这是UDP发送端".getBytes();
        DatagramPacket dp = new DatagramPacket(
        buf,buf.length,InetAddress.getByName("192.168.1.253"),10000);
        ds.send(dp);
        ds.close();
        }
        }
      • 接收端
        java
        class UDPRece {
        public static void main(String[] args) throws Exception {
        DatagramSocket ds = new DatagramSocket(10000);
        byte[] buf = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buf,buf.length);
        ds.receive(dp);//将发送端发送的数据包接收到接收端的数据包中
        String ip = dp.getAddress().getHosyAddress();//获取发送端的ip
        String data = new String(dp.getData(),0,dp.getLength());//获取数据
        int port = dp.getPort();//获取发送端的端口号
        sop(ip+":"+data+":"+port);
        ds.close();
        }
        }
  • TCP/IP协议:Socket和ServerSocket

    • 基于TCP协议的网络通信概述:
      • TCP/IP通信协议是一种必须建立连接的可靠的网络通信协议。它在通信两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路。
      • 网络虚拟链路一旦建立,两端的程序就可以进行通信。
    • TCP/IP协议开发步骤:

      • 客户端:
        • 建立Socket服务,并指定要连接的主机和端口;
        • 获取Socket流中的输出流OutputStream,将数据写入流中,通过网络发送给服务端;
        • 获取Socket流中的输出流InputStream,获取服务端的反馈信息;
        • 关闭资源。
      • 服务端:
        • 建立ServerSocket服务,并监听一个端口;
        • 通过ServerSocket服务的accept方法,获取Socket服务对象;
        • 使用客户端对象的读取流获取客户端发送过来的数据;
        • 通过客户端对象的写入流反馈信息给客户端;
        • 关闭资源
    • TCP/IP协议的一个Demo(必须要掌握!):

      • 客户端:
        java
        class TCPClient {
        public static void main(String[] args) {
        Socket s = new Socket("192.168.1.253",10000);
        OutputStream os = s.getOutputStream();
        out.write("这是TCP发送的数据".getBytes());
        s.close();
        }
        }
      • 服务端:

        class TCPServer {
            public static void main(String[] args) {
                ServerSocket ss = new ServerSocket(10000);
                Socket s = ss.accept();
        
                String ip = s.getInetAddress().getHostAddress();
                sop(ip);
        
                InputStream is = s.getInputStream();
                byte[] buf = new byte[1024];
                int len = is.read(buf);
                sop(new String(buf,0,len));
                s.close();
                ss.close();
            }
        }
  • HTTP协议:

    • HTTP是Hyper Text Transfer Protocol的缩写
    • 是由W3C制定和维护的。目前版本为1.0和1.1
    • 是开发web的基石,非常地重要
    • 版本
      • 1.0版本:是无状态的协议,即一次连接只响应一次请求,响应完了就关闭此次连接要想再访问须重新建立连接。而连接都是比较耗资源的。
      • 1.1版本:是有状态的协议。即可以在一次网络连接基础上发出多次请求和得到多次的响应。当距离上次请求时间过长时,服务器会自动断掉连接,这就是超时机制。
    • HTTP协议的组成:
      • 请求部分:
        • 请求行:
          • GET / HTTP/1.1 包含:请求方式GET 请求的资源路径:/ 协议版本号:HTTP/1.1
            • 请求方式。常用的有GET、POST
              • GET方式:默认方式。直接输入的网址。
                • 表单数据出现在请求行中。url?username=abc&password=123
                • 特点:不安全;有长度限制:<1k
              • POST方式:可以通过表单form method=”post”设置
                • 表单数据会出现在正文中。
                • 特点:安全;没有长度限制
        • 请求消息头:
        • 请求正文:第一个空行之后的全部都是请求正文
      • 响应部分:
        • 响应行:
          • HTTP/1.1 200 OK 包含:协议版本号:HTTP/1.1 响应码:200 描述:OK
            • 响应码:(实际用到的30个左右,其他都是W3C保留的)
            • 描述:对响应码的描述
            • 常用响应码:
              • 200:一切正常
              • 302/307:请求的资源路径变更了
              • 304:资源没有被修改过
              • 404:资源不存在,找不到资源
              • 500:服务器程序有错
        • 响应消息头:
        • 响应正文:
          • 第一个空行之后的全部都是响应正文,浏览器显示的就是正文中的内容

  • 邮箱 :charon.chui@gmail.com
  • Good Luck!
Qt http网络请求 #include <QNetworkAccessManager> #include <QNetworkRequest> #include <QNetworkReply> #include <QSslSocket> #include <QSslConfiguration> #include <QTime> #include <QApplication> #include <QDebug> 方式一 QUrl u 阅读详情

相关推荐

Flutter同时发起多个网络请求

Future概念 引用自Flutter中文网 Future与JavaScript中的Promise非常相似,表示一个异步操作的最终完成(或失败)及其结果值的表示。简单来说,它就是用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错误或者停止后续操作。一个Future只会对应一个结果,要么成功,要么失败。 由于本身功能较多,这里我们只介绍其常用的API及特性。还有,请记住,...

徐代龙的技术专栏 8994

网络请求

文章目录1.网络请求的分类2.请求头常见参数3.常见响应状态码 原文链接:爬虫基础——网络请求 https://blog.youkuaiyun.com/weixin_42830697/article/details/102642128 1.网络请求的分类 网络请求主要有八种,如下表所示: 请求方式 描述 GET 发送请求来获得服务器上的资源【比如请求百度的页面】 POST 向服务器提交资源...

weixin_40984271的博客 2205

思科模拟器PT8.2实战:用MQTT协议搭建智能家居控制原型(附完整代码)

本文详细介绍了如何在思科模拟器Packet Tracer 8.2中,利用MQTT协议构建一个智能家居灯光控制原型。从环境准备、拓扑设计到MQTT代理配置,手把手指导您完成发布者与订阅者的Python代码编写,实现开关对LED的远程控制。通过此实战项目,您将深入理解MQTT协议在物联网中的核心应用,掌握从理论到实践的完整开发流程。

weixin_29281941的博客 361

【计算机网络基础——系列4】关于HTTP请求的相关内容

文章目录前言一、http请求1.请求行2.请求头:3.请求体:4.具体的请求内容:二、http各请求方式的区别:1.head与get的区别:2.put与delete区别3.option三、http常见状态码:四、http请求头过大的解决办法。1. 将请求参数转而在请求体中设置:2. 在application中这样配置: 前言 HTTP是指超文本传输协议,基于应用层并且用于客户端和服务器通信;请求访问文本或图像资源的一端统称为客户端,提供资源响应的一端称为服务器。 提示:以下是本篇文章正文内容,下面案例

让程序飞会的博客 388

TP4056在单节锂电池充电管理中的创新应用与电路优化

本文深入探讨了TP4056线性充电管理芯片在单节锂电池充电电路中的创新应用与优化方案。针对“边充边用”的核心挑战,文章详细解析了利用PMOS管构建智能供电切换电路的原理,实现了外部电源与电池供电的无缝、安全切换,有效杜绝了电池“边充边放”的风险。同时,提供了关键的元器件选型、PCB布局布线技巧及常见问题排查指南,为创客和硬件开发者提供了高性价比、高可靠性的锂电池电源管理实践方案。

rock5的博客 501

树莓派3-改装wifi外置天线

声明:本文只是技术性探讨,改装引起的产品损坏等后果,由用户自负! 改装主要有两种方法 方法一:直接替换原来的天线 1、移除原有的小陶瓷天线,就在Made in PRC(或UK)那边的那个 清理一下阻焊剂方便天线接地(图中PRC左侧) 2、焊接天线 天线的屏蔽层焊接到清理完阻焊剂的地方,中间的信号线焊接到PRC右侧焊盘。 3、最终的样子

huayucong的博客 2万+

iOS网络请求相关框架的使用

iOS网络请求相关框架的使用点击链接跳转

u013069892的博客 332

哈工大OS实验四——进程运行轨迹的跟踪与统计

进程运行轨迹的跟踪与统计 进程从创建(Linux 下调用 fork())到结束的整个过程就是进程的生命期,进程在其生命期中的运行轨迹实际上就表现为进程状态的多次切换,如进程创建以后会成为就绪态;当该进程被调度以后会切换到运行态;在运行的过程中如果启动了一个文件读写操作,操作系统会将该进程切换到阻塞态(等待态)从而让出 CPU;当文件读写完毕以后,操作系统会在将其切换成就绪态,等待进程调度算法来调度该进程执行…… process.c解读 void cpuio_bound(int last, int cpu_

优快云-ych 1002

玩转iOS开发 - 网络请求

网络请求

Focus Now 3318

新手必看:如何用T265和ROS实现无人机室内精准定位(附PX4参数配置)

本文详细介绍了如何使用Intel Realsense T265和ROS实现无人机室内精准定位,包括硬件准备、ROS数据流架构设计、PX4参数配置及系统验证。特别针对视觉SLAM技术在室内环境中的应用,提供了从零搭建到进阶优化的全流程解析,适合无人机开发新手快速上手。

weixin_30642561的博客 406

LeRobot 机器人学习(Robot Learning)教程(二)经典机器人学

本文探讨了机器人学中基于学习的方法与传统动力学方法的对比与发展趋势。文章指出,传统方法依赖精确的动力学模型和大量人工调参,面临跨任务泛化能力弱、工程复杂度高、物理建模局限性等问题。随着机器学习技术的进步和机器人数据集的丰富,基于学习的方法展现出三大优势:(1)能够实现跨任务与实体的泛化;(2)降低对人类专业知识的依赖;(3)利用历史数据优化性能。文中以平面机械臂为例,分析了传统逆运动学方法的计算复杂性和环境适应性挑战,并指出基于学习的方案在处理高维感知输入、复杂接触动力学等方面具有明显优势。文章认为,结合物

2506_90492529的博客 1066

Volley 取消中断网络请求

1,Volley取消中断网络请求 先创建一个请求,并且附加标识 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main...

Cricket_7的博客 762

知识存储之Apache Jena

知识图谱的存储可以分为基于表结构的存储和基于图结构的存储。1️⃣基于表结构的存储基于表结构的存储利用二维的数据表对知识图谱中的数据进行存储。根据不同的设计原则,知识图谱可以具有不同的表结构:💨知识图谱实质上是一个个的三元组,一种简单直接的存储方式是设计一张三元组表用于存储所有三元组,有不少比较成熟的产品利用该形式存储知识图谱,包括Jena、Oracle、Virtuoso等。💨为每种类型构建一张表,同一类型的实例存放在相同的表中。

Puzzle的博客 6065

XMLHttpRequest网络请求

// 同步执行 const xhr = new XMLHttpRequest() xhr.open('POST', 'https://app.dev.9kbs.com/api/content/adslist', false) xhr.send() console.log(xhr.responseText) console.log('请求完成') // 异步执行 const xhr = new ...

echo_Ae的博客 726

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

『言善信』Fiddler工具 — 2、HTTP请求内容详解

目录1、HTTP协议介绍2、使用Fiddler抓取一个请求3、НТТP请求报文(1)НТТP请求报文说明(2)请求行(3)请求头(Request Header)(4)请求体4、НТТР响应报文(1)НТТP响应报文说明(2)响应行(3)响应头(Response Header)(4)响应体 1、HTTP协议介绍优惠券网站 m.cps3.cn HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本.

weixin_48967543的博客 828

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

鸿蒙开发-网络请求​

早日成为鹏总 286

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

js发起ajax get和post请求

设置请求参数 var params = { key1: "value", key2: "value" }; post请求 function appPost() { $.ajax({ url: API_URL + "user/getUserByOpenId", // 目标资源 c...

道行不知深浅的博客 1万+

网络请求框架

1.一个基于okHttp封装的网络请求  

weixin_34331102的博客 82

axios发送网络请求

本文介绍了常见的网络请求方法,以及封装axios请求

2201_75919511的博客 1223

Swift网络请求Alamofire

Swift网络请求库Alamofire使用详解 - Swift - 服务器之家

liangchunyan99的博客 645

HTTP请求数据格式

请求体: 即请求的真正内容。存放请求的参数

NJUSTZJC的博客 1986

Http网络请求与判断网络状况

weixin_44194980的博客 1301

微信小程序-对网络请求的封装

微信小程序-对网络请求的封装 /* * A JavaScript Of The WeChat Miniprogram For The Network Request * See https://www.jianshu.com/p/2e80c96ce712.html for details. * * author: cxr * * */ /** *@header...

qq_41943936的博客 457

uniapp发起网络请求

uni.request({ url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。 data: { text: 'uni.request' }, header: { 'custom-header': 'hello' //自定义请求头信息 }, success: (res) => { console.log(res.data); th.

深漂小码哥 643
上一篇: 算法
下一篇: AndroidStudio使用教程(第一弹)
CharonChui
博客等级 码龄12年 66粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值