java从网页抓取数据(java从网页抓取数据_githubjava的http请求/响应过程)

优采云 发布时间: 2022-04-07 19:08

  java从网页抓取数据(java从网页抓取数据_githubjava的http请求/响应过程)

  java从网页抓取数据_githubjava的http请求/响应过程http一些基本的概念http1.0基本的概念:http1.0只是为google提供通用的基础服务,最开始可以通过一些api来进行实现,现在大部分都是基于浏览器直接操作url。1.0有以下3个特点:匿名:每个请求都是匿名的,http1.0没有告诉request是谁请求谁响应,所以服务器需要有对象来进行判断请求是谁响应给客户端。

  时效性:请求可以从任何时间开始来到,响应也可以从任何时间开始接收。客户端和服务器端到不是24小时在线的。请求有必要假设tcp传输过程如下:请求阶段客户端发起请求,服务器端只根据请求信息进行解析处理。在每个请求到达之前,没有任何人知道这次请求的具体过程。(因为连接会被忽略)(tcp断开是因为ack状态码)服务器端响应,他们需要有i/o操作(比如磁盘操作),磁盘操作必须是“以文件的形式”发给客户端,响应也应该是“以文件的形式”发送给客户端。

  (如果不是,需要在客户端做出响应之前分析上次发送的响应内容,并将其传给服务器端,服务器端根据“以文件的形式”来处理上次发送的响应。)客户端接收到响应,它将不知道服务器端的具体逻辑(当然会有i/o操作,而且客户端也不知道服务器端具体有多少个工作线程),即便是知道,它也无法对外做更深的描述。于是,实际逻辑会被传递给httpclient(web服务器)处理。

  (httpclient的工作是,*敏*感*词*http请求,并将响应发送给客户端,一旦client返回响应,就以http响应的形式返回给客户端。)1.0的缺点明显:没有对等性。服务器端负责找到对等客户端,然后由客户端处理它。或者由client来处理客户端。有些client可能配备有多个工作线程,因此,服务器端的processruntime可能会产生非常大的问题。

  这些解决方案有:1.将tcp全部实现为长连接连接,ssl传输安全。2.规定一个process_name用于用户和服务器端的定位。每一个process_name用于*敏*感*词*一个区域,并给予一个来自客户端的请求id,同时,每个process_name可以注册多个响应。3.规定不可见的客户端/服务器间通信需要使用自己专有的协议。

  1.1tcp介绍tcp是提供可靠传输的协议,和udp没有区别,同时它还提供灵活的域名解析功能。通常用于传输比较快的数据比如二进制数据,多用于传输一个双向通道,以及在一个双向通道上*敏*感*词*的传输数据。tcp协议支持序列化和反序列化的基本功能。通过tcp连接实现的这些机制称为握手。服务器端发送一个ip包给客户端后,客户端向服务器发。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线