服务器端

基础网络概念

自作多情 提交于 2019-12-16 21:55:56
目录 基础网络概念 软件开发架构 B/S架构 C/S架构 基础网络概念 以太网:局域网与交换机 广播 ip地址与ip协议 mac地址 arp协议 ——查询IP地址和MAC地址的对应关系 TCP协议 UDP协议 tcp和udp的对比 每层常见的协议 基础网络概念 软件开发架构 B/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 C/S架构 B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。 Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。 基础网络概念 以太网:局域网与交换机 广播  主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面

Cookie详解整理

被刻印的时光 ゝ 提交于 2019-12-16 14:44:44
1.Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的。Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用。比如判断用户是否是第一次访问网站。目前最新的规范是RFC 6265,它是一个由浏览器服务器共同协作实现的规范。 2.Cookie的处理分为: 1.服务器像客户端发送cookie 2.浏览器将cookie保存 3之后每次http请求浏览器都会将cookie发送给服务器端,服务器端的发送与解析 3.发送cookie 服务器端像客户端发送Cookie是通过HTTP响应报文实现的,在Set-Cookie中设置需要像客户端发送的cookie,cookie格式如下: Set-Cookie: "name=value;domain=.domain.com;path=/;expires=Sat, 11 Jun 2016 11:29:42 GMT;HttpOnly;secure" 其中name=value是必选项,其它都是可选项。Cookie的主要构成如下: name:一个唯一确定的cookie名称。通常来讲cookie的名称是不区分大小写的。 value:存储在cookie中的字符串值。最好为cookie的name和value进行url编码 domain:cookie对于哪个域是有效的。所有向该域发送的请求中都会包含这个cookie信息。

Http协议&Servlet

不打扰是莪最后的温柔 提交于 2019-12-16 01:20:25
Http协议 什么是协议 双方在交互、通讯的时候, 遵守的一种规范、规则。 http协议 针对网络上的客户端 与 服务器端在执行http请求的时候,遵守的一种规范。 其实就是规定了客户端在访问服务器端的时候,要带上哪些东西, 服务器端返回数据的时候,也要带上什么东西。 版本 1.0 请求数据,服务器返回后, 将会断开连接 1.1 请求数据,服务器返回后, 连接还会保持着。 除非服务器 | 客户端 关掉。 有一定的时间限制,如果都空着这个连接,那么后面会自己断掉。 演示客户端 如何 与服务器端通讯。 在地址栏中键入网络地址 回车 或者是平常注册的时候,点击了注册按钮 , 浏览器都能显示出来一些东西。那么背地里到底浏览器和服务器是怎么通讯。 它们都传输了哪些数据。 安装抓包工具 HttpWatch (IE插件) 打开tomcat. 输入localhost:8080 打开首页 在首页上找到Example 字样 6.x 和 7.x 的文档页面有所不同,但是只要找到example就能够找到例子工程 选择 servlet 例子 —> Request Parameter 接着点击Request Parameters 的 Execute超链接 执行tomcat的例子,然后查看浏览器和 tomcat服务器的对接细节 Http请求数据解释 请求的数据里面包含三个部分内容 : 请求行 、 请求头

浏览器缓存控制三种方式(Expires、Last-Modified、Etag)

我只是一个虾纸丫 提交于 2019-12-15 02:27:12
当请求一个页面时,如果浏览器使用本地缓存,因此我们经常会看到一个HTTP请求为304状态。或者显示200状态,在chrome下标注是from cache,在火狐下会标注BFCache; 我们希望在服务器端更新了静态文件(如css、js、图片),能够在客户端得到及时的更新,但又不想让浏览器每次请求都从服务器端获取静态资源。那么就需要了解一些下面的知识: Last-Modified / If-Modified-Since 当浏览器第一次请求一个url时,服务器端的返回状态码为200,同时HTTP响应头会有一个Last-Modified标记着文件在服务器端最后被修改的时间。 浏览器第二次请求上次请求过的url时,浏览器会在HTTP请求头添加一个If-Modified-Since的标记,用来询问服务器该时间之后文件是否被修改过。 如果服务器端的资源没有变化,则自动返回304状态,使用浏览器缓存,从而保证了浏览器不会重复从服务器端获取资源,也保证了服务器有变化是,客户端能够及时得到最新的资源。 Etag / If-None-Match 当浏览器第一次请求一个url时,服务器端的返回状态码为200,同时HTTP响应头会有一个Etag,存放着服务器端生成的一个序列值。 浏览器第二次请求上次请求过的url时,浏览器会在HTTP请求头添加一个If-None-Match的标记

[转]HTTP幂等性概念和应用

∥☆過路亽.° 提交于 2019-12-14 16:35:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服 务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascript、AJAX、JSON以及HTML5等技术和工具的发展,互联网应用架构设 计表现出了从传统的PHP、JSP、ASP.NET等服务器端动态网页向Web API + RIA(富互联网应用)过渡的趋势。Web API专注于提供业务服务,RIA专注于用户界面和交互设计,从此两个领域的分工更加明晰。在这种趋势下,Web API设计将成为服务器端程序员的必修课。然而,正如简单的Java语言并不意味着高质量的Java程序,简单的HTTP协议也不意味着高质量的Web API。要想设计出高质量的Web API,还需要深入理解分布式系统及HTTP协议的特性。 幂等性定义 本文所要探讨的正是HTTP协议涉及到的一种重要性质:幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是: Methods can also

session与cookie的区别和联系

假如想象 提交于 2019-12-14 01:19:29
一、Session的概念 Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的Session。 一般情况下,服务器会在一定时间内(默认30分钟)保存这个 Session,过了时间限制,就会销毁这个Session。在销毁之前,程序员可以将用户的一些数据以Key和Value的形式暂时存放在这个 Session中。当然,也有使用数据库将这个Session序列化后保存起来的,这样的好处是没了时间的限制,坏处是随着时间的增加,这个数据 库会急速膨胀,特别是访问量增加的时候。一般还是采取前一种方式,以减轻服务器压力。 二、Session的客户端实现形式(即Session ID的保存方法) 一般浏览器提供了两种方式来保存,还有一种是程序员使用html隐藏域的方式自定义实现: [1] 使用Cookie来保存,这是最常见的方法,本文“记住我的登录状态”功能的实现正式基于这种方式的。服务器通过设置Cookie的方式将Session

详解TCP连接的“三次握手”与“四次挥手”(下)

独自空忆成欢 提交于 2019-12-14 00:09:13
上文链接: 详解TCP连接的“三次握手”与“四次挥手”(上) 四、TCP的四次挥手(Four-Way Wavehand) 0.前言 对于"三次握手"我们耳熟能详,因为其相对的简单。但是,我们却不常听见“四次挥手”,就算听过也未必能详细地说明白它的具体过程。下面就为大家详尽,直观,完整地介绍“四次挥手”的过程。 1.“四次挥手”的详解 所谓的四次挥手即TCP连接的释放(解除)。连接的释放必须是一方主动释放,另一方被动释放。以下为客户端主动发起释放连接的图解: 挥手之前主动释放连接的客户端结束ESTABLISHED阶段。随后开始“四次挥手”: (1) 首先客户端 想要释放连接 ,向服务器端发送一段TCP报文,其中: 标记位 为FIN,表示“请求释放连接“; 序号 为Seq=U; 随后客户端进入FIN-WAIT-1阶段,即半关闭阶段。并且停止在客户端到服务器端方向上发送数据,但是客户端仍然能接收从服务器端传输过来的数据。 注意: 这里不发送的是正常连接时传输的数据(非确认报文),而不是一切数据,所以客户端仍然能发送ACK确认报文。 (2) 服务器端接收到从客户端发出的TCP报文之后, 确认了客户端想要释放连接 ,随后服务器端结束ESTABLISHED阶段,进入CLOSE-WAIT阶段(半关闭状态)并返回一段TCP报文,其中: 标记位 为ACK,表示“接收到客户端发送的释放连接的请求”;

网速正常但下载速度很慢是什么原因

萝らか妹 提交于 2019-12-13 23:38:57
一、网络最小宽带 这应该是造成网速很快下载很慢的最主要的原因。这个原因也就是人们经常说的宽带不够,如果宽带比较高的话下载速度自然就快了起来,如果宽带比较低的话下载速度当然不会快。壹基比知曰来告诉你网速很快并不意味着宽带很高,因此如果宽带低的话下载速度也就变慢了就许多。   二、DNS解析速度 DNS是一个较为专业化的名词,通俗的来说,这就是域名到IP的一个过程,这个过程的速度是需要被解析的。从一台机器的工作转换到另一台机器的过程当中,机器与机器之间只认识IP,因而这个解析也需要花费一定的时间。在两台机器之间往复的进行解析以及每次解析的时间综合就是耗费的总时间。从网络上下载东西的时候,需要您的电脑与下载端的机器之间进行工作转化,这个过程是需要时间的,如果解析的过程比较复杂,则需要花费更多的时间,因此下载速度变慢了。 三、服务器软件 在下载东西的时候,有一个服务器端在运行工作,如果这个服务器端运行的软件数量比较多得话,分给下载的网络速度自然就变少了,这也就导致下载速度变慢。而如果在服务器端安装了一个防火墙软件,那它更会阻止网络的下载速度,使下载速度变慢。 四、下载软件的选择 如果您是使用浏览器自带的下载软件进行下载的话,其速度比起专业软件的下载速度就会慢许多。如果您使用迅雷这类下载软件,并且搭配上会员的话,软件自身有个下载加速的过程,这时候下载速率就提高了 来源: 51CTO 作者:

B/S之大文件分段上传、断点续传

旧街凉风 提交于 2019-12-13 13:45:55
4GB以上超大文件上传和断点续传服务器的实现 随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。 但是在很多情况下,平台运营方并没有大文件上传和断点续传的开发经验,往往在网上找一些简单的PHP或者Java程序来实现基本的上传功能,然而在实际使用中会发现,这些基于脚本语言实现的上传功能模块性能很弱,一是不支持2GB以上的内容上传;二是无法支持断点续传;三是效率极低,单台服务器最多支持几十个并发上传连接。 当前我们要搭建一个运营级的视频服务平台,在尝试了各种产品均无法满足要求,因此最后花精力自主用C++语言实现了这一高性能上传服务器。 项目地址: http://git://10.168.4.241/up6/web/asp.net.git Hyper Upload Server 超级上传服务器 这是一款超级文件上传服务器,采用异步I/O架构,采用C++语言编码实现。它支持4GB以上超大文件上传和断点续传,支持Windows和Linux服务器平台,支持任意格式的文件上传,尤其适合大的视频网站应用。单台服务器支持1000并发上传进程,支持PC端和智能手机端主流的浏览器。 主要特性 1. 服务器端采用异步I/O架设设计,具有高性能I/O处理能力,尤其适用于超大文件上传; 2.

Http协议

会有一股神秘感。 提交于 2019-12-12 13:43:31
什么是协议:双方在交互、通讯的时候, 遵守的一种规范、规则。 http协议:针对网络上的客户端 与 服务器端在执行http请求的时候,遵守的一种规范。 其实就是规定了客户端在访问服务器端的时候,要带上哪些东西, 服务器端返回数据的时候,也要带上什么东西。 版本   1.0:请求数据,服务器返回后, 将会断开连接   1.1:请求数据,服务器返回后, 连接还会保持着。 除非服务器 | 客户端 关掉。 有一定的时间限制,如果都空着这个连接,那么后面会自己断掉。 Http请求数据解释: 请求的数据里面包含三个部分内容 : 请求行 、 请求头 、请求体 请求行:   POST /examples/servlets/servlet/RequestParamExample HTTP/1.1   POST : 请求方式 ,以post去提交数据   /examples/servlets/servlet/RequestParamExample   请求的地址路径 , 就是要访问哪个地方。   HTTP/1.1 协议版本 请求头:   Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif,   image/pjpeg, application/x-ms-xbap, */*   Referer: