笔试怎么过(2)TCP/IP、HTTP、进程/线程、sql
2015-10-09 20:18
399 查看
笔试怎么过(2)TCP/IP、HTTP、进程/线程、sql
TCP/IPTCP/IP协议的工作流程如下:
1、在源主机上,应用层将一串应用数据流传送给传输层。
2、传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。
3、在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。
4、链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。
5、在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。
6、网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。
7、传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。
8、在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。
应用层(Application layer)、表示层(Presentation layer)、会话层(Session layer)、传输层(Transport layer)、网络层(Network layer)、数据链路层(Data link layer)、物理层(Physical layer)
TCP和UDP的区别:
TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
简单的说,TCP注重数据安全,而UDP数据传输快点,但安全性一般。
建立连接协议(三次握手)
1、客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。
2、服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。
3、客户必须再次回应服务段一个ACK报文,这是报文段3。
连接终止协议(四次挥手)
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
1、TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。
2、服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
3、服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。
4、客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。
HTTP协议
工作流程:
一次HTTP操作称为一个事务,其工作过程可分为四步:
1、首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2、建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3、服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4、客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
常用的请求方式是GET和POST:
GET方式:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。
POST方式:用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,Post被设计成用统一的方法实现下列功能:
1、对现有资源的解释;
2、向电子公告栏、新闻组、邮件列表或类似讨论组发信息;
3、提交数据块;
4、通过附加操作来扩展数据库 。
从上面描述可以看出,Get是向服务器发索取数据的一种请求;而Post是向服务器提交数据的一种请求,要提交的数据位于信息头后面的实体中。
GET与POST方法有以下区别:
1、在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
2、GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
3、安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
4、安全的和幂等的。
进程与线程的区别与联系:
进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。
线程,在网络或多用户环境下,一个服务器通常需要接收大量且不确定数量用户的并发请求,为每一个请求都创建一个进程显然是行不通的,——无论是从系统资源开销方面或是响应用户请求的效率方面来看。因此,操作系统中线程的概念便被引进了。线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位。
线程的执行特性
线程只有 3 个基本状态:就绪,执行,阻塞。
线程存在 5 种基本操作来切换线程的状态:派生,阻塞,激活,调度,结束。
进程通信。
单机系统中进程通信有 4 种形式:主从式,会话式,消息或邮箱机制,共享存储区方式。
主从式典型例子:终端控制进程和终端进程。
会话式典型例子:用户进程与磁盘管理进程之间的通信。
SQL
SQL分类:
DDL数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句:
创建数据库
CREATE DATABASE database-name
删除数据库
drop database dbname
备份sql server
创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'
开始 备份
BACKUP DATABASE pubs TO testBack
创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
删除新表drop table tabname
增加一个列
Alter table tabname add column col type注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col)
创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。
====================================================================================
结束。
相关文章推荐
- TCP滑动窗口与拥塞窗口
- 网络编程socket相关错误号及信息的获取
- Python网络爬虫(Get、Post抓取方式)
- Python网络爬虫(Get、Post抓取方式)
- 《深入理解Linux网络技术内幕》阅读笔记(二十一)
- 一个TCP连接池的自我修养-如mysql-client、http-client、redis-client
- Linux网络编程socket错误分析
- ThreadSafeClientConnManager用来支持多线程的使用http client
- ThreadSafeClientConnManager用来支持多线程的使用http client
- 黑窗口下带进度条的http下载
- Java基础知识强化之网络编程笔记09:TCP之客户端键盘录入服务器写到文本文件中
- HttpClient通过GET和POST获取网页内容
- HttpClient 4.x 执行网站登录并抓取网页的代码
- 360每日自动签到,领取积分 (java httpclient4.x)
- c# httpcontext
- 中国网络拓扑图
- tcpcopy在语音识别的应用
- Linux网络测试命令
- 网络上的学习笔记 Hadoop
- GTK+浅谈之十三网络编程