httpWord下载.docx
- 文档编号:19663560
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:72
- 大小:57.36KB
httpWord下载.docx
《httpWord下载.docx》由会员分享,可在线阅读,更多相关《httpWord下载.docx(72页珍藏版)》请在冰豆网上搜索。
您可以使用网站管理员工具查看一下Googlebot在抓取重定向网页时是否遇到问题。
诊断下的网络抓取页列出了由于重定向错误导致Googlebot无法抓取的网址。
300(多种选择)针对请求,服务器可执行多种操作。
服务器可根据请求者(useragent)选择一项操作,或提供操作列表供请求者选择。
301(永久移动)请求的网页已永久移动到新位置。
服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新位置。
您应使用此代码告诉Googlebot某个网页或网站已永久移动到新位置。
302(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。
此代码与响应GET和HEAD请求的301代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉Googlebot某个网页或网站已经移动,因为Googlebot会继续抓取原有位置并编制索引。
303(查看其他位置)请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码。
对于除HEAD之外的所有请求,服务器会自动转到其他位置。
304(未修改)自从上次请求后,请求的网页未修改过。
服务器返回此响应时,不会返回网页内容。
如果网页自请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为If-Modified-SinceHTTP标头)。
服务器可以告诉Googlebot自从上次抓取后网页没有变更,进而节省带宽和开销。
305(使用代理)请求者只能使用代理访问请求的网页。
如果服务器返回此响应,还表示请求者应使用代理。
307(临时重定向)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。
此代码与响应GET和HEAD请求的301代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉Googlebot某个页面或网站已经移动,因为Googlebot会继续抓取原有位置并编制索引。
四、请求错误
4xx(请求错误)
这些状态码表示请求可能出错,妨碍了服务器的处理。
400(错误请求)服务器不理解请求的语法。
401(未授权)请求要求身份验证。
对于登录后请求的网页,服务器可能返回此响应。
403(禁止)服务器拒绝请求。
如果您在Googlebot尝试抓取您网站上的有效网页时看到此状态码(您可以在Google网站管理员工具诊断下的网络抓取页面上看到此信息),可能是您的服务器或主机拒绝了Googlebot访问。
404(未找到)服务器找不到请求的网页。
例如,对于服务器上不存在的网页经常会返回此代码。
如果您的网站上没有robots.txt文件,而您在Google网站管理员工具"
诊断"
标签的robots.txt页上看到此状态码,则这是正确的状态码。
但是,如果您有robots.txt文件而又看到此状态码,则说明您的robots.txt文件可能命名错误或位于错误的位置(该文件应当位于顶级域,名为robots.txt)。
如果对于Googlebot抓取的网址看到此状态码(在"
标签的HTTP错误页面上),则表示Googlebot跟随的可能是另一个页面的无效链接(是旧链接或输入有误的链接)。
405(方法禁用)禁用请求中指定的方法。
406(不接受)无法使用请求的内容特性响应请求的网页。
407(需要代理授权)此状态码与401(未授权)类似,但指定请求者应当授权使用代理。
如果服务器返回此响应,还表示请求者应当使用代理。
408(请求超时)服务器等候请求时发生超时。
409(冲突)服务器在完成请求时发生冲突。
服务器必须在响应中包含有关冲突的信息。
服务器在响应与前一个请求相冲突的PUT请求时可能会返回此代码,以及两个请求的差异列表。
410(已删除)如果请求的资源已永久删除,服务器就会返回此响应。
该代码与404(未找到)代码类似,但在资源以前存在而现在不存在的情况下,有时会用来替代404代码。
如果资源已永久移动,您应使用301指定资源的新位置。
411(需要有效长度)服务器不接受不含有效内容长度标头字段的请求。
412(未满足前提条件)服务器未满足请求者在请求中设置的其中一个前提条件。
413(请求实体过大)服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414(请求的URI过长)请求的URI(通常为网址)过长,服务器无法处理。
415(不支持的媒体类型)请求的格式不受请求页面的支持。
416(请求范围不符合要求)如果页面无法提供请求的范围,则服务器会返回此状态码。
417(未满足期望值)服务器未满足"
期望"
请求标头字段的要求。
五、服务器错误
5xx(服务器错误)
这些状态码表示服务器在处理请求时发生内部错误。
这些错误可能是服务器本身的错误,而不是请求出错。
500(服务器内部错误)服务器遇到错误,无法完成请求。
501(尚未实施)服务器不具备完成请求的功能。
例如,服务器无法识别请求方法时可能会返回此代码。
502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。
503(服务不可用)服务器目前无法使用(由于超载或停机维护)。
通常,这只是暂时状态。
504(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505(HTTP版本不受支持)服务器不支持请求中所用的HTTP协议版本。
1.C/C++基础知识问题
a)关键字volatile在编译时有什么含义?
并给出三个不同使用场景的例子(可以伪代码或者文字描述)。
b)C语言中static关键字的具体作用有哪些?
c)请问下面三种变量声明有何区别?
请给出具体含义
intconst*p;
int*constp;
intconst*constp
参考答案
a)用volatile关键字定义变量,相当于告诉编译器,这个变量的值会随时发生变化,每次使用时都需要去内存里重新读取它的值,并不要随意针对它作优化。
建议使用volatile变量的场所:
(1)并行设备的硬件寄存器
(2)一个中断服务子程序中会访问到的非自动变量(全局变量)
(3)多线程应用中被几个任务共享的变量
b)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。
它是一个本地的全局变量。
在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。
那就是,这个函数被限制在声明它的模块的本地范围内使用。
static全局变量与普通的全局变量有什么区别:
static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:
static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:
static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝;
c)一个指向常整型数的指针
一个指向整型数的常指针
一个指向常整型数的常指针
2.要使引用pr代表变量“char*p”,则pr的初始化语句为__________
char*&
pr=p;
3.表达式8&
3的结果是__________。
4.设intx;
,则经过()后,语句*px=0;
可将x值置为0。
Aint*px;
Bintconst*px=&
x;
Cint*constpx=&
Dconstint*px=&
C
5.写出下列程序的执行结果。
#include
voidfun(int,int,int*);
voidmain()
{
intx,y,z;
fun(2,3,&
x);
fun(4,x,&
y);
fun(x,y,&
z);
cout<
<
'
'
}
voidfun(inta,intb,int*c)
{
b*=a;
*c=b-a;
4,12,44
EmbeddedSoftwareDesignEngineer
1读程序段,回答问题
intmain(intargc,char*argv[])
intc=9,d=0;
c=c++%5;
d=c;
printf("
d=%d\n"
d);
return0;
a)写出程序输出
b)在一个可移植的系统中这种表达式是否存在风险?
why?
#include"
stdio.h"
inta=0;
intb;
staticcharc;
chard=4;
staticshorte;
a++;
b=100;
c=(char)++a;
e=(++d)++;
a=%d,b=%d,c=%d,d=%d,e=%d"
a,b,c,d,e);
b)编译器如果安排各个变量(a,b,c,d)在内存中的布局(eg.stack,heap,datasection,bsssection),最好用图形方式描述。
2中断是嵌入式系统中重要的组成部分,这导致了许多编译开发商提供一种扩展:
让标准C支持中断,产生了一个新的关键字__interrupt。
下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论以下这段代码。
__interruptdoublecompute_area(doubleradius)
doublearea=PI*radius*radius;
nArea=%f"
area);
returnarea;
3C/C++基础知识问题
intconst*constp;
4嵌入式系统相关问题
a)对于整形变量A=0x12345678,请画出在littleendian及bigendian的方式下在内存中是如何存储的。
b)在ARM系统中,函数调用的时候,参数是通过哪种方式传递的?
c)中断(interrupt,如键盘中断)与异常(exception,如除零异常)有何区别?
5设周期性任务P1,P2,P3的周期为T1,T2,T3分别为100,150,400;
执行时间分别为20,40,100。
请设计一种调度算法进行任务调度,满足任务执行周期及任务周期。
6优先级反转问题在嵌入式系统中是一中严重的问题,必须给与足够重视。
a)首先请解释优先级反转问题
b)很多RTOS提供优先级继承策略(Priorityinheritance)和优先级天花板策略(Priorityceilings)用来解决优先级反转问题,请讨论这两种策略。
参考答案:
15//我感觉答案应该是4,但标准答案给的是5...
存在风险,因为c=c++%5;
这个表达式对c有两次修改,行为未定义,c的值不确定
//datasection
//BSS
//stack
a=2,b=100,c=2,d=6,e=5
2a)ISR不能返回一个值;
b)ISR不能传递参数;
c)浮点一般都是不可重入的;
d)printf函数有重入和性能上的问题。
3a)用volatile关键字定义变量,相当于告诉编译器,这个变量的值会随时发生变化,每次使用时都需要去内存里
重新读取它的值,并不要随意针对它作优化。
在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数
访问。
那就是,这个函数被限制在声明它的
模块的本地范围内使用。
static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
4
a)0x12345678
littleendianbigendian刚好反过来
高地址--〉0x12低地址--〉0x12
0x340x34
0x560x56
低地址--〉0x78高地址--〉0x78
b)参数<
=4时候,通过R0~R3传递,>
4的通过压栈方式传递
c)异常:
在产生时必须考虑与处理器的时钟同步,实践上,异常也称为同步中断。
在处理器执行到由于编程失误而导致的错误指令时,或者在执行期间出现特殊情况(如缺页),必须靠内核处理的时候,处理器就会产生一个异常。
所谓中断应该是指外部硬件产生的一个电信号,从cpu的中断引脚进入,打断cpu当前的运行;
所谓异常,是指软件运行中发生了一些必须作出处理的事件,cpu自动产生一个陷入来打断当前运行,转入异常处理流程。
异步与同步的区别`
5
6高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象叫做优先级反转
优先级继承策略(Priorityinheritance):
继承现有被阻塞任务的最高优先级作为其优先级,任务退出临界区,恢
复初始优先级。
优先级天花板策略(Priorityceilings):
控制访问临界资源的信号量的优先级天花板。
优先级继承策略对任务执行流程的影响相对教小,因为只有当高优先级任务申请已被低优先级任务占有的临界资源
这一事实发生时,才抬升低优先级任务的优先级。
printf(“d=%d\n”,d);
#include“stdio.h”
printf(“a=%d,b=%d,c=%d,d=%d,e=%d”,a,b,c,d,e);
以前学过c++,这个是可以的e=(++d)++;
现在才发现在c中,这是不行的
a=2,b=100,c=2,d=6,e=5
datasection:
a
bsssection:
b,c,e
stackd
在采用段式内存管理的架构中,数据段(datasegment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。
数据段属于静态内存分配。
在采用段式内存管理的架构中,BSS段(bsssegment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。
BSS是英文BlockStartedbySymbol的简称。
BSS段属于静态内存分配。
a)对于整形变量A=0×
12345678,请画出在littleendian及bigendian的方式下在内存中是如何存储的。
low–>
high
littleendian0×
780×
560×
340×
12
bigendian0×
120×
78
在arm汇编中,如果不超过4个参数时,是通过r0-r3寄存器来传递参数,>
4的通过压栈方式传递。
在《Linux内核设计与实现》一书中,说道:
异常:
中断可分为同步(synchronous)中断和异步(asynchronous)中断:
1.同步中断是当指令执行时由CPU控制单元产生,之所以称为同步,是因为只有在一条指令执行完毕后CPU才会发出中断,而不是发生在代码指令执行期间,比如系统调用。
2.异步中断是指由其他硬件设备依照CPU时钟信号随机产生,即意味着中断能够在指令之间发生,例如键盘中断。
高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象叫做优先级反转
最低优先级任务继承现有被阻塞任务的最高优先级作为其优先级,任务退出临界区,恢
via的考题--继续
2007-06-2911:
09
1.via的考题一道
这个程序设计的思想是这样的:
为了测试32位机上的浮点数的运算精度,作如下考虑:
当1.5==1时(二进制1.1==1)精度为1个小数位
当1.25==1时(二进制1.01==1)精度为2个小数位
继续判断测试,直到两者相等,从而得到精度。
所以程序代码如下:
intmain()
{intnCount;
floatnumber1,number2;
nCount=0;
number1=1.0;
number2=1.0
while(number1+number2!
=number1){
nCount++;
number2/=2.0;
printf(“%dbitsaccruacy.\n”,nCount);
问题是,结果为多少?
经测试得64或者53或者24(稍加改动)。
。
得53和24已基本得出答案,主要是ieee754标准中规定单双精度数字的底数指数符号位所置。
64的目前还没有得出结论。
2.改错题
voidmymul(double*p)
*p*=2.0;
intmain(intargc,char*argv[])
floatf=6.0;
mymul((double*)&
f);
printf(“nowf=%f\n”,f);
直接运行,结果为6.00000
这个题目很简单,可以有很多种改法,如:
a.把floatf=6.0;
改为doublef=6.0;
睛面的mymul句不要强制类型转化b.把所有的数都当成float型来处理等等
但往细的方面想,float型默认4字节,double型默认8字节,虽然在vc6下能勉强运行(运行时报出调试窗口),但单步跟踪发现在mymul()中并没有得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- http