面试题及答案

本文概述了在网站开发过程中的关键技术要点,包括数据传输、文件包含与加载、正则表达式应用、子域名与Cookie管理、编码一致性、Apache配置、URL重写、页面压缩方法、工作流程优化策略等,旨在提升网站性能与用户体验。
摘要由CSDN通过智能技术生成

1. POST和GET分别能够传输多少数据?
get:浏览器不同,处理长度不同,ie:2083,ff:65000
服务器不同,处理的长度也不一定相同。
post:理论上是不限长度,但受到服务器的配置限制。

2. 请简述include,include_once,require,require_once之间的区别?
INCLUDE,INCLUDE_ONCE在失败时返回一个警告,而REQUIRE, REQUIRE_ONCE返回致命错误,INCLUDE_ONCE, REQUIRE_ONCE表示仅包含文件一次
3. 请写一段正则表达式可以提取出页面所含的URL

例如:从<A href=’http://www.google.com’ title=’google’>Google</a>中

提取出http://www.google.com

正则表达式: /<a\s+href=\’(.*?)\’[^>]*>.*?<\/a>/i

4. 某网站域名aaa.com下面有诸多子域名,例如sub1.aaa.com,sub2.aaa.com等等

请问有什么方法保证这些子域名下都可以访问得到cookie?
aaa.com

5. 假如网站采用UTF-8编码,请问在整个开发过程中,有什么地方需要统一编码,或者是需要

作出相关设置?

首先程序涉及到的文件必须为ut8编码,数据库最好设置为utf8编码,然后发送头header(“Content-type: text/html; charset=utf-8″);

6. 在apache的配置文件httpd.conf 中

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
以上分别是有什么作用?

Timeout: 服务器超时时间
KeepAlive on:和服务器保持连接
MaxKeepAliveRequests 100: 最大保持的连接数为100
KeepAliveTimeout 5:连接保持的时间

7. 网站需要做URL Rewrite,需要达到伪静态的效果,如下面规则:

http://www.aaa.com/news/view/id/1990/page/1映射到

http://www.aaa.com/news/1990_1.html,

http://www.aaa.com/news/view/id/1990/page/2映射到

http://www.aaa.com/news/1990_2.html,

http://www.aaa.com/news/view/id/1990/page/3映射到

http://www.aaa.com/news/1990_3.html

……
等等诸如此类
请问apache中应该如何配置?
RewriteRule ^/news/view/id/([0-9]*)/page/([0-9]*)$ /news/$1_$2\.html [R]

8. 网站PHP的页面输出需要做压缩后再发往客户端,请问有哪些方法可以做页面压缩?
我所了解的有gzip, deflate

9. Apache的worker模式和prefork 模式有什么区别,假如网站每天访问量超过1000万PV,你认为

哪种模式更适合?

prefork每个进程只有一个线程。效率高,但内存占用较大。worker每个进程可以有多个线程,内存占用量比较小,大PV使用worker模式比较好

10. 在面向对象开发中,我们通常会看到在类的成员函数前面有此类限制,如

public,protected,private,请问他们三者之间有何区别?

public:公共的,可以在类外部访问
protected:继承的,可以在类和子类中访问
private:私有的,只能在类内部访问

11. 我们有一个PHP的一维数组,假设一维数组中都是存放整型数据,请写一个类,该类开放

一个方法,可以高效的把这个数组进行从小到大进行排序。
要求:1. 不能调用PHP内置的排序函数

2. 需要写一个类,该类中至少包含构造函数,析构函数以及完成排序的功能函数
class Order{
public function __construct()
{

}
public static function small2big($array)
{
$n=count($array);
for ($i=0;$i<$n;$i++)
{
for ($j=$n-2;$j>=$i;$j–)
{
if($array[$j+1]<$array[$j])
{
$tmp = $array[$j+1];
$array[$j+1]=$array[$j];
$array[$j]=$tmp;
}

}

}
return $array;

}
public function __destruct()
{

}
}

12. 我们有两个字符串$str1 ,$str2,需要写一个PHP类查找$str2是否在$str1中出现。其中$str1和

$str2都是有多个字符的字符串(字符串中字符不考虑多字节字符)

要求:不能调用PHP内置的字符串查找函数

class strFind
{
public function __construct()
{

}
public static function find($str1, $str2)
{
$nStr1 = strlen($str1);
$nStr2 = strlen($str2);
$flag = 0;//符合数量
$t = false;
for($i=0;$i<$nStr1;$i++)
{
if(@$str1[$i] == @$str2[$flag])
{
$flag++;
if($flag>=$nStr2)
{
$t = true;
}
}
else
{
$flag = 0;
}

}
return $t;
}
public function __destruct()
{

}
}
13. 有一张MySQL的数据表名为 member,其中有2个字段
id unsigned int
name varchar(20)
假设数据库中的数据类似:
id值 name值
1. AAA
2. BBB
3. CCC
4. AAA
5.
…….
47892 …….
请写一段SQL取出数据表中name重复的数据。(注意只需要重复的)

1、SELECT * FROM member GROUP BY name having count(*)>1;

2、事物:

declare @test table(id int,name varchar(10))
insert @test
select 1,’AAA’ union all
select 2,’BBB’ union all
select 3,’CCC’ union all
select 4,’DDD’ union all
select 5,’EEE’ union all
select 6,’AAA’ union all
select 7,’AAA’ union all
select 8,’BBB’ union all
select 9,’CCC’ union all
select 10,’CCC’ union all
select 11,’DDD’ union all
select 12,’DDD’ union all
select 13,’EEE’ union all
select 14,’EEE’ union all
select 15,’EEE’ union all
select 16,’FFF’
select distinct name from ( SELECT name,count(1) over(partition by name) as n FROM @test ) a where n<>1

14. 请列举之前的工作中有使用过哪一些方法来优化网站。

(1),使用gzip技术压缩页面信息
(2),优化SQL查询语句,减少查询时间
(3),使用缓存。
(4),生成静态
(5),优化PHP代码和算法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值