通过前一篇博客的讲解,我们大体知道了HTTP协议是什么,它有什么组成,以及它的工作原理,那么在HTTP的很多特点中,有一点叫做,无状态,就HTTP是一个无状态的协议,如果需要前面的信息用于处理后边的请求,那么在HTTP当中,就需要对前边的信息进行重发,这一点是很不方便的,那么为了解决HTTP在用于需要记录前边信息的场景的问题,提出了这么两个概念,Session和Cookie.那么我们先来了解一下Session是什么呢? Session,顾名思义,中文含义是会话,如同前文所述,它是用于解决一类用来…
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 首先声明一下,刚开始学习java网络通信编程就对他有一种畏惧感,因为自己对网络一窍不通,所以...呵呵..你懂得,昨天又仔细的学习了一遍,感觉其实java网络编程也没想象的那么难,不信,咱一起看看...呵呵.. 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大…
Java实现SOAP协议 之 HelloWorld SOAP是把基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起. 准备: 1. 准备一个web server.Tomcat 下载地址 http://tomcat.apache.org/ 本例使用版本 apache-tomcat-7.0.54-windows-x64.zip 2. 写一个servlet send用来发送一个SOAP的message并添加一个附件. 3. 写一个servlet receive用来做SOAP message…
引言 http(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式.HTTP协议的主要特点是:     1.支持客户/服务器模式.     2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.由于HTTP协议简单,通信速度很快.     3.灵活:HTTP允许传输任意类型的数据对象.类型由Content-Type加以标记.     4.无连接:即每次连接只处理一个请求,处理完客户的请求,并收到客户的应答后,即断开连接.采用这种方式可以节省传输时间…
Java远程方法协议(英语:Java Remote Method Protocol,JRMP)是特定于Java技术的.用于查找和引用远程对象的协议.这是运行在Java远程方法调用(RMI)之下.TCP/IP之上的线路层协议. JRMP是一个Java特有的.适用于Java之间远程调用的基于流的协议,要求客户端和服务器上都使用Java对象.…
转: java网络通信:异步非阻塞I/O (NIO) 首先是channel,是一个双向的全双工的通道,可同时读写,而输入输出流都是单工的,要么读要么写.Channel分为两大类,分别是用于网络数据的SelectableChannel和用于文件操作的FileChannel. 注意:在java NIO库中,所有的数据都是用缓冲区处理,常用的是ByteBuffer. 多路复用器Selector: Selector会不断轮询注册在其上的Channel,如果某个Channel上又新的连接接入.读和写事件,…
本文原文由作者“zskingking”发表于:jianshu.com/p/271b1c57bb0b,本次收录有改动. 1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯网专注的即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余. 对于Android程序员来说,如果您觉得本文内容稍显枯燥,可以看看即时通讯网之前整理过的一篇类似文章<迈向高阶:优秀Android程序员必知必会的网络基础>,该文内容更偏向于知识点的…
熟悉java的同学,都知道javaEE当中很大一部分的内容,是WEB开发,那么在进行WEB开发的学习过程当中,除了需要学习SpringMVC/STRUTS2等框架以外,我们还需要对在WEB开发当中常用到的协议有所了解,那就是HTTP协议,今天就简单的记录一下自己学习HTTP协议的一些内容吧.文中参考了许多前人写的博客以及自己的一些理解,在文中末尾会进行参考标注. 首先我们先大体了解一下什么是HTTP协议,所谓的HTTP协议,全称:超文本传输协议,是用于从WEB服务器传输超文本(各类前端代码,如h…
面试的时候,面试官由于需要考察一个面试人对于网络编程的熟悉程度,往往会考察学生对于TCP.HTTP.UDP.这些常见的网络编程当中的协议的了解程度,而TCP协议则是首当其冲的,作为进程之间通信常用的一种协议,只要岗位涉及到了进程之间的相互通信,则一定会被询问到TCP协议,那么本篇就来总结一下TCP协议吧~ TCP协议在OSI七层模型当中,是属于传输层的协议,它是一种可靠传输的协议,这个可靠,指的是TCP可以确保通信信息不会因为网络因素导致丢包,确保接受方一定可以接受到完整的数据.在TCP可靠传输…
背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间能够进行正常的网络通信,不至于出现在一台机器上发出的指令到另一台机器上成了不可认的乱码,SSH 就是众多协议的其中之一.经典的七层 OSI 模型(Open System Interconnection Reference Model)出现后,大大地解决了网络互联的兼容性问题,它将网络划分成服务.接口…
http://m.blog.csdn.net/xiaojin21cen/article/details/78587541 越下面越底层 , 最后面的都是框架 , 下面的是 编程语言提供的库的 NIO API ( JDK 1.4 开始提供) 分布式RPC 框架 (例如Dubbo) , 消息队列(例如RocketMQ) Netty  是异步的高性能的通信框架 , 包装了Socket , 是上层框架的基础通信组件 Socket 网络编程 TCP/UDP 协议 Netty Netty通过使用 NIO 的…
网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大部分的程序设计语言都设计了专门的API实现这些功能,程序员只需要调用即可.所以,基础的网络编程可以和打电话一样简单 一:首先看一下网络通讯的两种方式 1.TCP(传输控制协议)方式 TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发…
预备知识 多线程 实现多线程 线程池 IO流 核心功能就是读和写 扩展功能对什么读写,怎么读写,如何优化读写 网络基础 IP IP规定网络上所有的设备都必须有一个独一无二的IP地址,就好比是邮件上都必须注明收件人地址,邮递员才能将邮件送到.同理,每个IP信息包都必须包含有目的设备的IP地址,信息包才可以正确地送到目的地.同一设备不可以拥有多个IP地址,所有使用IP的网络设备至少有一个唯一的IP地址 OSI模型 TCP/IP模型 网络通信 基本思路: 存在着两台主机client,和server 两…
package com.demo.util; import java.io.IOException; import java.io.InputStream; import java.net.*; /** * 1.模拟服务器,通过浏览器来访问 * @author AWEEN * */ public class HttpDemo { public static void main(String[] args) { // TODO Auto-generated method stub ServerSo…
首先我们认识下什么是cookies: cookie实际上是一个存在你硬盘里的数据,但是这些数据很特殊,只能由web应用提交给浏览器帮助存储,并且我们还能读取浏览器存在本地的cookie web应用一般只在cookie中存储一些用户信息等少量且暂时的数据,数据量大则不适合存储在cookies 一般浏览器对于每个web应用会分别给予他们40个cookie用来存储数据,并且每个cookie的大小不超过4K(听说部分浏览器的cookie能存很大的数据,不过我们一般不会存这么大的数据,因为数据提取的效率不…
本文转载自:http://wing011203.cnblogs.com/ 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础是Socket,在TCP连接中,我们会使用ServerSocket和Socket,当客户端和服务器建立连接以后,剩下的基本就是对I/O的控制了. 我们先来看一个简单的TCP通信,它分为客户端和服务器端. 客户端代码如下: 简单的TCP客户端 import java.net.*; import jav…
由于要做app的UDP协议交互,所以就特地学习了下,其实也就类似于java的server和socket,下面就写了个简单的demo 服务端: package com.test1; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketException;…
一.基本概念 1.网络程序: 能够接受另一台计算机发送过来的数据或者能够向另一台计算机发送数据的程序叫做网络程序. 2.IP 能够在网络中唯一标示一台主机的编号就是IP 3.端口号 16位数字表示 4.协议 进行网络中数据交换(通信)而建立的规则.标准或者约定. 分类:TCP:面相连接的可靠的传输的连接,类似打电话 UDP:是无连接的不可靠的传输协议,类似写信 二.套接字Socket 1.基于UDP的Socket编程 步骤:1.定义码头  Datagram Socket对象ds 2.定义可以用来…
参考谷歌翻译,关键字直接使用英文,原文地址:http://www.journaldev.com/1907/java-session-management-servlet-httpsession-url-rewriting Java Web应用程序中的会话管理(Session Management)是一个非常有趣的话题.Java Servlet中的会话通过不同的方式进行管理,例如Cookie,HttpSession API,URL重写等. 这是Java Web应用程序系列教程中的第三篇文章,您可能…
互联网协议(二) 一.对上一节的总结 我们已经知道,网络通信就是交换数据包.电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信.数据包的结构,基本上是下面这样: 发送这个包,需要知道两个地址: * 对方的MAC地址 * 对方的IP地址 有了这两个地址,数据包才能准确送到接收者手中.但是,前面说过,MAC地址有局限性,如果两台电脑不在同一个子网络,就无法知道对方的MAC地址,必须通过网关(gateway)转发. 上图中,1号电脑要向4号电脑发送一个数据包.它先判断…
码云项目源码地址:https://gitee.com/ZhangShunHai/echo 教学视频地址:链接: https://pan.baidu.com/s/1knVlW7O8hZc8XgXm1dCt5Q 提取码: b8o0 关于Java网络通讯方面的内容. Java基础知识:BIO.NIO.AIO三者的技术实现,以及彼此之间的区别 Netty:TCP 程序实现为主 代码的核心:Echo程序模型,通过网络实现一个基础的Echo. 一.BIO模型:同步阻塞IO处理 在程序的开发之中Java里面最…
1 HTTP协议特点 1)客户端->服务端(请求request)有三部份 a)请求行 b)请求头 c)请求的内容,如果没有,就是空白字符 2)服务端->客户端(响应response)有三部 a)响应行 b)响应头 c)响应的内容,如果没有,就是空白字符 *2 HTTP请求头和响应头含义 1)请求(客户端->服务端[request]) GET(请求的方式) /books/java.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号) Accept: */*(客户端能接收的…
索引 1.什么是 Session? 2.Java 中的会话管理—— Cookie 3.Java Servlet 中的 Session —— HttpSession 理解 JSESSIONID Cookie 4.Java Servlet 中的会话管理 - URL 重写 参考谷歌翻译,原文地址:http://www.journaldev.com/1907/java-session-management-servlet-httpsession-url-rewriting Java Web 应用程序中的…
1 C\S 客户端/服务器架构: .硬件 C/S架构 (打印机) .软件 C/S 架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S 架构 与 socket 的关系: 我们学习 socket 就是为了完成 C/S架构的开发 2 操作系统基础: 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的…
1.InetAdress类 与  Socket类  >InetAdress  >Socket 2.TCP/IP协议簇  客户端: 创建 Socket:根据指定服务端的 IP 地址或端口号构造 Socket 类对象.若服务器端响应,则建立客户端到服务器的通信线路.若连接失败,会出现异常. 打开连接到 Socket 的输入/出流: 使用 getInputStream()方法获得输入流,使用 getOutputStream()方法获得输出流,进行数据传输 按照一定的协议对 Socket  进行读/写…
最近老师给我们上了多线程和TCP和UDP协议,其中一个要求就是我们用JAVA协议一个基于TCP和UDP这两种协议的一对一文件上传和一对多文件上传. 然后我就开始分析TCP和UDP这两个协议的特点,发现TCP是流传输,抓住这一点就好实现了. 现在我们需要解决一下几个问题, 1.如何确定文件名称 2.如何完成数据传输,并复原成原来的文件. 解决方案就是,对象这是个好东西,因为TCP支持流传输的缘故,我们把每个文件对象化,这样我们就很容易实现基于TCP的多文件上传了. 下面是文件对象代码: 因为我考虑…
前言:该博客花了我一个下午得心血,全部手打,路过给个赞,拒绝抄袭!!!!!!!!!!!!!!!!!!!!!!!!! 简单的SOCKET通信程序 先从一段简单的JAVA程序性开始写起,这里我们才用半双工的形式,这里的半双工意思是客户端可以给服务端发送数据,发完数据就关闭,而服务端可以一直接受数据 我们使用多线程方式,这个不重要 下面是线程类 public class SocketThread implements Runnable { public SocketThread(Socket sock…
已经发表个人公众号 代码展示 package two; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; public class Three { public static void main(String[] args) { // TODO Auto-generated method stub try { URL url = new URL("http://www.bai…
Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 也就是说,Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用.Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发. 本文示例采用netty 5.0.上代码. 服务端: import io.netty.bootstrap.ServerBootstr…
 一.Cookie 是什么? HTTP协议是无状态的,每一次数据交换完毕就结束,服务器端和客户端的链接就会关闭,每次交换数据都需要建立新的链接.例如:我逛淘宝买东西,我看上了易宝棒棒糖,而我下单的时候,服务器不知道我是谁,而我有个ID,你能通过 ID 识别我,现在你居然不知道我谁?我去,那我怎么付款??? 而我们的业务是有状态的,因此,产生了 Cookie,用于记录状态 . Cookie 是服务器发送到用户浏览器并保存在本地某个目录下的文本内的一小块数据,它会在浏览器之后向同一个服务器再次发起请…