【August】面试Tips

一、Socket连接与HTTP连接原理

  1 socket通信与http通信的区别  

      Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”(get/post),即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。 

  2 基于TCP协议的Socket 

  服务器端首先声明一个ServerSocket对象并且指定端口号,然后调用Serversocket的accept()方法接收客户端的数据。accept()方法在没有数据进行接收的处于堵塞状态。(Socketsocket=serversocket.accept()),一旦接收到数据,通过inputstream读取接收的数据。

  客户端创建一个Socket对象,指定服务器端的ip地址和端口号(Socketsocket=newSocket("172.168.10.108",8080);),通过inputstream读取数据,获取服务器发出的数据(OutputStreamoutputstream=socket.getOutputStream()),最后将要发送的数据写入到outputstream即可进行TCP协议的socket数据传输。

     由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。 

     很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

  http通信的实现,是基于socket这个通信工具的。

  http://blog.csdn.net/mad1989/article/details/9147661

  Socket提供了程序内部与外界通信的端口并为通信双方的提供了数据传输通道。

二、mysql数据库基本操作

  1、MySQL常用命令

  create database name; 创建数据库

  use databasename; 选择数据库

  drop database name 直接删除数据库,不提醒

  show tables; 显示表

  describe tablename; 表的详细描述

  select 中加上distinct去除重复字段

  mysqladmin drop databasename 删除数据库前,有提示。

  显示当前mysql版本和当前日期

  select version(),current_date;

  2、修改mysql中root的密码:

  shell>mysql -u root -p

  mysql> update user set password=password(”xueok654123″) where user=’root’;

  mysql> flush privileges //刷新数据库

  mysql>use dbname; 打开数据库:

  mysql>show databases; 显示所有数据库

  mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后

  mysql>describe user; 显示表mysql数据库中user表的列信息);

  3、grant

  创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个

  mysql> grant all privileges on *.* to user@localhost identified by ’something’ with

  增加新用户

  格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

  GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;

  GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;

  删除授权:

  mysql> revoke all privileges on *.* from root@”%”;

  mysql> delete from user where user=”root” and host=”%”;

  mysql> flush privileges;

  创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb

  mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by ‘ passwd’

  重命名表:

  mysql > alter table t1 rename t2;

  4、mysqldump

  备份数据库

  shell> mysqldump -h host -u root -p dbname >dbname_backup.sql

  恢复数据库

  shell> mysqladmin -h myhost -u root -p create dbname

  shell> mysqldump -h host -u root -p dbname < dbname_backup.sql

  如果只想卸出建表指令,则命令如下:

  shell> mysqladmin -u root -p -d databasename > a.sql

  如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:

  shell> mysqladmin -u root -p -t databasename > a.sql

  那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?

   mysqldump -T./ phptest driver

  其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。

  5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。

  可利用外壳程序键入重定向实用程序来完成这项工作。

  例如,如果在文件my_file.sql 中存放有查询,可如下执行这些查询:

  例如,如果您想将建表语句提前写在sql.txt中:

  mysql > mysql -h myhost -u root -p database < sql.txt

 

三、Axure RP Pro设计关键

  

  在Axure RP设计出来的Prototype中,最简单的互动设计是网页连结,透过滑鼠的click来串起使用者与网站的互动流程。

  最重要的是用户体验的过程。

 

四、Html、Javascript、CSS之间的关系

  HTML是基础,css是表态地规范html元素的位置大小颜色等等状态的,而javascript则可以动态地控制html元素。

  HTML之所以称为超文本标记语言,是因为文本中包含了所谓“超链接”点。超文本(Hypertext)是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。

  概括,HTML就是整合网页结构和内容显示的一种语言。

  CSS 层叠样式表单(Cascading StyleSheet)是将样式信息与网页内容分离的一种标记性语言 。

  作为网站开发者,你能够为每个HTML元素定义样式,并将之应用于你希望的任意多的页面中。如需进行全局的更新,只需简单地改变样式,然后网站中的所有元素均会自动地更新。这样,即设计人员能够将更多的时间用在设计方面,而不是费力克服HTML的限制。说白了,CSS就是设置网页上HTML元素属性的语言

  JavaScript 是属于网络的脚本语言。Javascript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。例如可以设置鼠标悬停效果,在客户端验证表单,创建定制的HTML页面,显示警告框,设置cookie等等。

  网页中所有的对数据进行判断、操作以及向浏览者反馈信息的本地代码实现部分均是Javascript(当然也有其他的),这样既可以使网页更具交互性,给用户提供更令人兴奋的体验,同时减轻了服务器负担。

  http://blog.csdn.net/david_xtd/article/details/18984483

posted @ 2015-08-04 18:12  Mitt  阅读(121)  评论(0编辑  收藏  举报