服务器端开发

Android网络编程概述

喜你入骨 提交于 2019-12-07 16:42:59
首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) Java .net.*(标准Java接口) java.net.*提供与联网有关的类,包括流、数据包套接字(socket)、Internet协议、常见Http处理等。比如:创建URL,以及URLConnection/HttpURLConnection对象、设置链接参数、链接到服务器、向服务器写数据、从服务器读取数据等通信。这些在Java网络编程中均有涉及。 b) Org.apache接口 对于大部分应用程序而言JDK本身提供的网络功能已远远不够,这时就需要Android提供的Apache HttpClient了。它是一个开源项目,功能更加完善,为客户端的Http编程提供高效、最新、功能丰富的工具包支持。 c)Android.net.*(Android网络接口) 常常使用此包下的类进行Android特有的网络编程,如:访问WiFi,访问Android联网信息,邮件等功能。 2)网络 架构 主要有两种模式B/S,C/S B/S----》就是浏览器/服务器端模式了,通过应用层的HTTP协议通信,不需要特定客户端软件,而是需要统一规范的客户端,简而言之就是Android网络浏览器(如chrome,UcWeb,QQ浏览器等等)访问web服务器端的方式了。 C/S-----》就客户端/服务器端模式,通过任意的网络协议通信

thrift php服务器端开发

。_饼干妹妹 提交于 2019-12-06 02:21:15
在前文(Thrift的java和php数据交互 http://my.oschina.net/penngo/blog/489311 )中只介绍了java作服务器端,但是“php是最好的语言”,自然少了php开发的thrift服务器端。 使用的业务例子,还是以前文的登录和注册为例 服务器端由php代码编写,客户端由php和java编写。 PhpMulServer.php (注意需要使用apache或其它web服务器来运行,由于thrift自身没有提供负载均衡,可考虑用LVS、HAProxy、 Nginx等等对HTTP请求做负载均衡处理) <?php namespace com\penngo; error_reporting(E_ALL); require_once __DIR__.'/../lib/Thrift/ClassLoader/ThriftClassLoader.php'; use Thrift\ClassLoader\ThriftClassLoader; $GEN_DIR = realpath(dirname(__FILE__).'/..').'/gen-php'; $loader = new ThriftClassLoader(); $loader->registerNamespace('Thrift', __DIR__ . '/../lib'); $loader-

反向Ajax,第1部分:Comet介绍

谁说我不能喝 提交于 2019-12-04 17:13:29
在过去的几年中,web开发已经发生了很大的变化。现如今,我们期望的是能够通过web快速、动态地访问应用。在这一新的文章系列中,我们学习如何使用反向Ajax(Reverse Ajax)技术来开发事件驱动的web应用,以此来实现更好的用户体验。客户端的例子使用的是JQuery JavaScript库,在这首篇文章中,我们探索不同的反向Ajax技术,使用可下载的例子来学习使用了流(streaming)方法和长轮询(long polling)方法的Comet。 前言 web开发在过去的几年中有了很大的进展,我们已经远超了把静态网页链接在一起的做法,这种做法会引起浏览器的刷新,并且要等待页面的加载。现在需要的是能够通过web来访问的完全动态的应用,这些应用通常需要尽可能的快,提供近乎实时的组件。在这一新的由五部分组成的文章系列中,我们学习如何使用反向Ajax(Reverse Ajax)技术来开发事件驱动的web应用。 在这第一篇文章中,我们要了解反向Ajax、轮询(polling)、流(streaming)、Comet和长轮询(long polling),学习如何实现不同的反向Ajax通信技术,并探讨每种方法的优点和缺点。你可以下载本文中例子的相应源代码。 Ajax、反向Ajax和WebSocket 异步的JavaScript和XML(Asynchronous JavaScript and

防止重复提交表单

*爱你&永不变心* 提交于 2019-12-03 17:46:54
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交。 一、表单重复提交的常见应用场景 有如下的form.jsp页面 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <!DOCTYPE HTML> 3 <html> 4 <head> 5 <title>Form表单</title> 6 </head> 7 8 <body> 9 <form action="${pageContext.request.contextPath}/servlet/DoFormServlet" method="post">10 用户名:<input type="text" name="username">11 <input type="submit" value="提交" id="submit">12 </form>13 </body>14 </html>   form表单提交到 DoFormServlet 进行处理 1 package xdp.gacl.session; 2 3 import java.io.IOException; 4 import javax.servlet

客户端到服务器端的通信过程及原理

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-03 01:33:58
学习任何东西,我们只要搞清楚其原理,就会触类旁通。现在结和我所学,我想总结一下客户端到服务器端的通信过程。只有明白了原理,我们才会明白当我们程序开发过程中错误的问题会出现在那,才会更好的解决问题。 我们首先要了解一个概念性的词汇: Socket socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。( 其实就是两个程序通信用的 。)socket非常类似于电话的插座。以一个电话网为例。电话的通话双方相当于相互通信的2个程序,电话号码可以当作是IP地址。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码(IP地址),相当于对方有一个固定的socket。然后向对方拨号呼叫,相当于发出连接请求。对方假如在场并空闲,拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。通话结束后,一方挂起电话机相当于关闭socket,撤消连接,通信完成。 以上通信是以两个人通话做为事例来在概的说明了下通信,但是现在假如通信中的一个人是外国人(说英语),一个人是中国人(说普通话),他们俩相互通信的话,都不能听明白对方说的是什么,那么他们的沟通就不能够完成

HTTP消息头详解

混江龙づ霸主 提交于 2019-12-02 11:11:33
但凡搞WEB开发的人都离不开HTTP(超文本传输协议),而要了解HTTP,除了HTML本身以外,还有一部分不可忽视的就是HTTP消息头。做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP传输的消息也是这样规定的,每一个HTTP包都分为HTTP头和HTTP体两部分,后者是可选的,而前者是必须的。每当我们打开一个网页,在上面点击右键,选择“查看源文件”,这时看到的HTML代码就是HTTP的消息体,那么消息头又在哪呢?IE浏览器不让我们看到这部分,但我们可以通过截取数据包等方法看到它。下面就来看一个简单的例子: 首先制作一个非常简单的网页,它的内容只有一行: <html><body>hello world</body></html> 把它放到WEB服务器上,比如IIS,然后用IE浏览器请求这个页面( http://localhost:8080/simple.htm ),当我们请求这个页面时,浏览器实际做了以下四项工作: 1、解析我们输入的地址,从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下:   协议名:http   主机名:localhost   端口:8080   对象路径:/simple.htm 2、把以上部分结合本机自己的信息

Socket学习

核能气质少年 提交于 2019-12-01 15:53:19
本文参考自: https://www.cnblogs.com/dolphinx/p/3460545.html https://juejin.im/post/5a069b6d51882509e5432656 https://www.cnblogs.com/goodcandle/archive/2005/12/10/294652.html 一、TCP/IP协议 (一)、简介 TCP/IP协议即 传输控制协议/网间协议 ,定义了 主机如何连入因特网,以及数据在它们之间传输的标准 。 TCP/IP协议指因特网整个TCP/IP的协议族 ,而不是特指某个单独的协议 TCP/IP协议包括四个抽象层: 应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 传输层:TCP,UDP 网络层:IP,ICMP,OSPF,EIGRP,IGMP 数据链路层:SLIP,CSLIP,PPP,MTU 它们之间的关系可用如下图表示: (二)、数据包和数据处理流程 在TCP/IP协议的每个分层中,都会对所发送的数据附加一个首部,这个首部里包含了所在层的相关信息,如要发送的目标地址和协议的相关信息。 网络中传输的数据包由两部分组成:一部分是协议要用的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义,数据包的首部标明了协议应该如何读取数据。反过来说,看到首部

浅谈服务器端渲染和客户端渲染的区别和优缺点

可紊 提交于 2019-12-01 08:53:24
https://segmentfault.com/q/1010000008563275/a-1020000008738562 https://www.freecodecamp.org/news/what-exactly-is-client-side-rendering-and-hows-it-different-from-server-side-rendering-bd5c786b340d/ 何为渲染? 如果我们只是想显示一堆不变的数据,那么我们直接写一个a.html丢到服务器上让客户端访问就可以了。但这是基本不可能的事情,数据一般是变化的。你不可能为每套数据写一个视图,所以我们需要分离数据和视图,然后使用一种技术将数据塞到视图中,这种技术就叫渲染。这工作放在服务器上做就是服务器渲染,放在浏览器做就是浏览器渲染。 这里的渲染,就是指生成html文档的过程,和浏览器渲染html没有关系。 浏览器端渲染, 指的是用js去生成html,前端做路由。举例:React, Vue等等前端框架。适合单页面应用程序。 服务器端渲染, 指的是用后台语言通过一些模版引擎生成html。举例:PHP文件、JSP文件、Python的Flask配合Jinja引擎、Django框架、Java配合vm模版引擎、NodeJS配合Jade。适合多页面应用。其实现在大部分网站还是这种形式。 浏览器渲染

java基础(31):网络通信协议、UDP、TCP

半城伤御伤魂 提交于 2019-12-01 08:20:00
1. 网络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。 网络通信协议有很多种,目前应用最广泛的是 TCP/IP 协议 (Transmission Control Protocal/Internet Protoal 传输控制协议 / 英特网互联协议 ) ,它是一个 包括 TCP 协议和 IP 协议, UDP ( User Datagram Protocol )协议 和其它一些协议的协议组, 在学习具体协议之前首先了解一下 TCP/IP 协议组的层次结构。 在进行数据传输时,要求发送的数据与收到的数据完全一样,这时,就需要在原有的数据上添加很多信息,以保证数据在传输过程中数据格式完全一致。 TCP/IP 协议的层次结构比较简单,共分为四层,如图所示。 上图中, TCP/IP 协议中的四层分别是应用层、传输层、网络层和链路层,每层分别负责不同的通信功能,接下来针对这四层进行详细地讲解。 链路层: 链路层 是 用于定义 物理传输通道, 通常是对某些网络连接设备的驱动协议,例如针对 光纤、 网线 提供的驱动。 网络层:网络层

Web服务器——WSGI

橙三吉。 提交于 2019-12-01 02:50:28
1.什么是WSGI?   WSGI全称 Web Server Gateway Interface,也可称作Python Web Server Gateway Interface,开始于2003年,为Python语言定义Web服务器和服务器端程序的通用接口规范。 2.作用:是将Python服务器端程序连接到Web服务器的通用协议,如下图 分析说明:   从上图中可以看出,WSGI的接口分为两个:一个是与Web服务器的接口,一个是与服务器端程序的接口;WSGI Server 与Web服务器的接口包括uwsgi、fast cgi等。服务器端程序的开发人员很少关注这部分的细节,服务器端的开发者需要更加 详细去了解WSGI和服务器程序接口。 注意:虽然WSGI的设计目标是连接标准的Web服务器(Nginx、Apache)与服务器端程序,但它本身也可以作为Web服务 器运行。但由于性能方面的限制,该服务器一般只在测试时使用。 来源: https://www.cnblogs.com/kaka6k66k/p/11649447.html