`
DBear
  • 浏览: 231096 次
  • 性别: 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的头部”有什么区别?
看看这篇文章《各浏览器对页面外部资源加载的策略
分享到:
评论

相关推荐

    FrontEnd-java反编译工具

    总的来说,FrontEnd提供的jad反编译工具是Java开发者的重要辅助工具,它能帮助我们理解字节码,进行代码调试和学习,同时在没有源代码的情况下也能进行一定程度的分析和修复工作。正确并合理地使用这类工具,将有助...

    cxf-rt-frontend-jaxrs-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-frontend-jaxrs-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxrs-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxrs-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxrs...

    hanyueqiang#frontEnd_book#基于MQTT协议开发web端物联网应用1

    1.WebSocket是一种在单个TCP连接上进行全双工通讯的协议,同时允许跨域通讯 2.WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服

    jad和frontEnd反编译器

    然而,有时我们可能需要查看这些编译后的代码,了解其内部实现,尤其是在进行逆向工程、代码学习或调试第三方库时。jad和FrontEnd就是两个常用的Java反编译器,它们能够将.class文件转换回接近原生的Java源代码。 ...

    java反编译工具FrontEnd V2.03

    总的来说,"FrontEnd V2.03"作为一个强大的Java反编译工具,提供了一种直观的方式来查看和操作.class文件,它适用于学习、调试和研究已编译的Java代码。但是,由于反编译的局限性,我们应当理解其可能存在的不足,并...

    FrontEnd 反编译工具

    总的来说,FrontEnd作为JAD的图形化扩展,极大地提升了Java反编译的易用性和实用性,是开发者研究和学习Java类库、调试第三方组件或者进行逆向工程时的得力助手。理解并熟练使用这类工具,有助于提升前端开发人员的...

    cxf-rt-frontend-jaxws-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-frontend-jaxws-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxws-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxws-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxws...

    jad | FrontEnd

    这对于理解第三方库的工作原理、学习新技能或调试代码非常有用,尤其是当源代码不可用时。 jad 的工作原理主要基于对Java字节码的解析。Java字节码是一种中间语言,它是Java源代码经过编译后的结果。jad 通过逆向...

    FrontEnd&jad;

    而"FrontEnd&jad;"这个主题似乎关联到前端开发领域,并且与Java反编译工具有关,这对于理解、学习和分析Java代码非常有用。下面我们将详细探讨这些知识点。 首先,前端开发主要涉及HTML、CSS和JavaScript技术,它们...

    fcitx-frontend-qt5

    fcitx-frontend-qt5的离线安装包

    UPX Frontend v3.01

    UPX Frontend v3.01 是一个专为IT专业人士设计的应用软件,它提供了一种图形用户界面(GUI)来简化UPX(Ultimate Packer for eXecutables)的使用过程。UPX是一款开源的、免费的、强大的可执行文件打包器,能够对...

    FrontEnd

    4. **FrontEnd Plus.txt**:这个文件可能是关于"FrontEnd"的附加信息或者使用手册,可能包含"FrontEnd plus v0.01"的特性、更新日志、使用教程等。 综合来看,这个压缩包可能包含了一个自定义的Java应用描述符工具...

    cxf-rt-frontend-simple-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-frontend-simple-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-simple-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-simple-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-...

    FrontEnd.exe+Jad.exe

    在IT行业中,"FrontEnd.exe+Jad.exe" 提到的这两个文件名通常是与软件开发相关的,特别是前端和编译工具。让我们详细探讨一下这两个组件及其在计算机科学和IT技术中的作用。 首先,"FrontEnd.exe" 这个名称暗示了一...

    jad.exe and frontend.exe

    标题中的"jad.exe and frontend.exe"提到了两个关键程序,jad.exe和FrontEnd.exe,它们在Java开发中扮演着特定的角色。jad.exe是Java反汇编器(Java Decompiler),而FrontEnd.exe可能是jad的一个图形用户界面(GUI...

    wp-user-frontend-pro

    "wp-user-frontend-pro"是一款针对WordPress平台的专业前端表单编辑插件,它极大地扩展了网站用户在前段操作的功能,允许非管理员级别的用户在不进入后台的情况下进行文章的编辑和发布。这款插件旨在提升用户体验,...

    FrontEnd Plus java反编译

    Java反编译是将已编译的Java字节码(.class文件)转换回源代码的过程,这在软件开发、逆向工程、调试和学习已有的闭源软件时非常有用。"FrontEnd Plus"可能是一个特定的Java反编译工具,尽管在描述中没有提供详细...

    FrontEnd.exe

    而"FrontEnd.exe"这个程序似乎是一款专为Java开发者设计的工具,它的功能是将Java字节码文件(.class文件)反编译回源代码文件(.java文件)。这种工具对于开发者来说非常有用,因为它们可以用来查看或理解已编译的...

    JAVA反编译工具Frontend+2.0

    JAVA反编译工具Frontend+2.0

    WP User Frontend Pro汉化版2.2.4

    WP User Frontend Pro是一款专为WordPress设计的强大插件,它允许网站管理员创建用户友好的前端界面,以便访客可以提交内容、注册、登录以及管理个人资料,无需进入网站后台。这款汉化版2.2.4是针对中文用户的优化...

Global site tag (gtag.js) - Google Analytics