`
DBear
  • 浏览: 228593 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类

【Frontend Knowlodge Chart】 学习之HTTP协议

阅读更多

HTTP协议

 

考查HTTP协议的认知程度和基本知识。

知识点

  • HTTP协议的概念,HTTP请求、响应的组成。
  • 常见HTTP Method表达的意思,不仅仅是GET和POST
GET: 请求指定的页面信息,并返回实体主体。
HEAD: 只请求页面的首部。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE: 请求服务器删除指定的页面。
OPTIONS: 允许客户端查看服务器的性能。
TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
MOVE: 请求服务器将指定的页面移至另一个网络地址。
COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
LINK: 请求服务器建立链接关系。
UNLINK: 断开链接关系。
WRAPPED: 允许客户端发送经过封装的请求。
Extension-mothed:在不改动协议的前提下,可增加另外的方法。
  • HTTP状态码的表意区间,常见HTTP状态码表达的意义。
  • 浏览器与服务器对cookie的交互方式。
  • 浏览器对外部资源,如样式表、脚本文件、图片、flash的加载顺序和限制。
  • 基于资源瀑布图的分析和优化。

常见问题

  • 请说说HTTP协议中的请求及响应的组成部分。
请求:请求行、消息报头、空行(只有CTLF的行)、请求正文;  
响应:状态行、消息报头、空行(只有CTLF的行)、响应正文;
请求行:格式,Method Request-URI HTTP-Version CRLF,例如:GET /form.html HTTP/1.1 \r\n
状态行:格式,HTTP-Version Status-Code Reason-Phrase CRLF 例如: HTTP/1.1 200 OK \r\n
消息报头:包括普通报头、请求报头、响应报头、实体报
普通报头: 在普通报头中,有少数报头域应用于所有的请求和响应消息,但并不用于被传输的实体,这些报头 域只用于传输的消息。 常用的普通报头域:
Cache-Control
Date
Connection
Pragma
请求报头:请求报头允许客户端向服务器端传递该请求的附加信息以及客户端自身的信息。 常用的请求报头 域:
Accept:
Accept-Charset:
Accept-Encoding:
Accept-Language:
Authorization:
Host:
User-Agent:
响应报头: 响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request- URI所标识的资源进行下一步访问的信息,常用的响应报头域:
Location:
Server: 
实体报头:请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,大多数情况下,实 体正文就是请求消息中的请求正文或者响应消息中的响应正文但是在发送时,并不是说实体报头域和实体正文 要在一起发送。 常用的实体报头域: 
Content-Encoding:
Content-Language:
Content-Length:
Content-Type:
Last-Modified:
Expires:


 
  • 请简单阐述一下,当使用一个input type="file"进行文件上传时,怎么从请求流中找出该文件的内容和相关信息?
  • 请指出HTTP状态码中的200、302、304、404、500、503表示的意义。
① 客户方错误
100  继续
101  交换协议
② 成功
200  OK
201  已创建
202  接收
203  非认证信息
204  无内容
205  重置内容
206  部分内容
③ 重定向
300  多路选择
301  永久转移
302  暂时转移
303  参见其它
304  未修改(Not Modified)
305  使用代理
④ 客户方错误
400  错误请求(Bad Request)
401  未认证
402  需要付费
403  禁止(Forbidden)
404  未找到(Not Found)
405  方法不允许
406  不接受
407  需要代理认证
408  请求超时
409  冲突
410  失败
411  需要长度
412  条件失败
413  请求实体太大
414  请求URI太长
415  不支持媒体类型
⑤ 服务器错误
500  服务器内部错误
501  未实现(Not Implemented)
502  网关失败
504  网关超时
505 HTTP版本不支持
  • HTTP状态码301和302有什么区别?

  • 在HTTP头中,关于缓存的有哪几个?分别起什么作用?

  • 在一次AJAX请求中,怎么判断请求已经结束,并且服务器成功执行了请求并给出了正确的响应?

  • 为什么使用CTRL+F5刷新浏览器可以避免本地缓存呢?

  • 服务器是如何得到浏览器中的cookie的?又如何向浏览器设置某个cookie呢?

  • 为什么要将样式放在头部,而将脚本放在页面底部呢?
样式放在头部:在很多浏览器下,如IE,把样式表放在document的底部的问题在于它禁止了网页内容的顺序显示。浏览器阻止显示以免重画页面元素,那用户只能看到空白页了。Firefox不会阻止显示,但这意味着当样式表下载后,有些页面元素可能需要重画,这导致闪烁问题。HTML规范明确要求样式表被定义在HEAD中,因此,为避免空白屏幕或闪烁问题,最好的办法是遵循HTML规范,把样式表放在HEAD中。

脚本放在页面底部:对于脚本来说,脚本后面内容的顺序显示将被阻塞,因此把脚本尽量放在底部意味着更多内容能被快速显示,且可达到最大的并行下载。
  • 将一个外部样式表通过link元素引入,则该元素在“页面的head的底部”与“页面的body的头部”有什么区别?
看看这篇文章《各浏览器对页面外部资源加载的策略
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics