测试开发面试准备之HTTP协议-Http常用请求方法

Posted william126

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试开发面试准备之HTTP协议-Http常用请求方法相关的知识,希望对你有一定的参考价值。

那么HTTP请求报文和响应报文会是什么格式呢?

起始行:如 GET / HTTP/1.0 (请求的方法  请求的URL 请求所使用的协议)

头部信息:User-Agent  Host等成对出现的值

主体

 

不管是请求报文还是响应报文都会遵循以上的格式。

 

 

那么起始行中的请求方法有哪些种呢?

 

  GET: 完整请求一个资源 (常用)

  HEAD: 仅请求响应首部

  POST:提交表单  (常用)

  PUT: (webdav) 上传文件(但是浏览器不支持该方法)

  DELETE:(webdav) 删除

  OPTIONS:返回请求的资源所支持的方法的方法

  TRACE: 追求一个资源请求中间所经过的代理(该方法不能由浏览器发出)

 

那什么是URL、URI、URN?

 

URI  Uniform Resource Identifier 统一资源标识符

URL  Uniform Resource Locator 统一资源定位符

    格式如下:  scheme://[username:[email protected]]HOST:port/path/to/source

                http://www.magedu.com/downloads/nginx-1.5.tar.gz

 

URN  Uniform Resource Name 统一资源名称

 

URL和URN 都属于 URI

 

为了方便就把URL和URI暂时都通指一个东西

 

 

请求的协议有哪些种?

 

有以下几种:

 

http/0.9: stateless

http/1.0: MIME, keep-alive (保持连接), 缓存

http/1.1: 更多的请求方法,更精细的缓存控制,持久连接(persistent connection) 比较常用

 

下面是Chrome发起的http请求报文头部信息

 

技术图片

 

其中

Accept  就是告诉服务器端,我接受那些MIME类型

Accept-Encoding  这个看起来是接受那些压缩方式的文件

Accept-Lanague   告诉服务器能够发送哪些语言

Connection       告诉服务器支持keep-alive特性

Cookie           每次请求时都会携带上Cookie以方便服务器端识别是否是同一个客户端

Host             用来标识请求服务器上的那个虚拟主机,比如Nginx里面可以定义很多个虚拟主机

                那这里就是用来标识要访问那个虚拟主机。

User-Agent       用户代理,一般情况是浏览器,也有其他类型,如:wget curl 搜索引擎的蜘蛛等    

 

 

条件请求首部:

If-Modified-Since 是浏览器向服务器端询问某个资源文件如果自从什么时间修改过,那么重新发给我,这样就保证服务器端资源

            文件更新时,浏览器再次去请求,而不是使用缓存中的文件

安全请求首部:

Authorization: 客户端提供给服务器的认证信息;

 

什么是MIME?

 

MIME(Multipurpose Internet Mail Extesions 多用途互联网邮件扩展)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息,这个标准被定义在RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049等RFC中。 由RFC 822转变而来的RFC 2822,规定电子邮件标准并不允许在邮件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英语字符消息和二进制文件,图像,声音等非文字消息都不能在电子邮件中传输。MIME规定了用于表示各种各样的数据类型的符号化方法。 此外,在万维网中使用的HTTP协议中也使用了MIME的框架,标准被扩展为互联网媒体类型。

 

MIME 遵循以下格式:major/minor 主类型/次类型 例如:

p_w_picpath/jpg
p_w_picpath/gif
text/html
video/quicktime
appliation/x-httpd-php

 

以上是关于测试开发面试准备之HTTP协议-Http常用请求方法的主要内容,如果未能解决你的问题,请参考以下文章

测试开发面试准备之HTTP协议-Http Https 的区别

测试开发面试准备之HTTP协议-TCP与UDP基本区别

让面试官颤抖,HTTP2.0协议之你应该要准备的面试题

面试准备 HTTP协议

HTTP协议相关面试题

HTTP协议详解——经典面试题