HTTP报文

来源:互联网 发布:用户体验运营 知乎 编辑:程序博客网 时间:2024/06/05 11:12

今日学习了HTTP报文的相关基础知识,做出以下简单的记录:

1.1.报文流:
报文在客户端、服务器和代理之间流动,术语“流入”“流出”用来描述事务处理的方向,报文流入源端服务器,工作完成后流回Agent代理中。此外,报文永远都是向下游流动的。

1.2 报文的组成部分

  • 对报文进行描述的起始行
  • 包含属性的首部
  • 可选的,包含数据的主体

1.2.1 报文的语法:所有的HTTP报文都可以分为两类:请求报文(向web服务器请求一个动作)和响应报文(将请求的结果返回给客户端)

#请求报文的格式:#请求行 <method> <request-URL> <version> #说明要做些什么,此处的version告示服务器客户端使用哪种HTTP<headers><entity-body>#相应报文的格式:# 响应行 <version> <status> <reason-phrase><headers><entity-body>#注释:<method>:指定客户端希望服务器对资源执行的动作,如get/head/post<request-URL>所请求资源的URL<version>报文所用的HTTP版本,如HTTP/1.1<status>状态码<reason-phrase>原因短语<headers>首部,以一个空行结束。<entity-body>主体#常见的几种HTTP方法:方法              描述                          是否含有主体GET             从服务器获取一份文档              否POST            向服务器发送需要处理的数据         是PUT             将请求的主体部分存储在服务器上      是DELETE          从服务器上删除一份文档             否HEAD            只从服务器获取首部                否#状态吗区间判断:100~199            信息提示200~299            成功300~399            重定向400~499            客户端错误500~599            服务器错误#常见的状态码:200       OK            成功401       Unaothorized(未授权) 需要输入用户名和密码404       Not Found(找不到)      服务器无法找到请求URL对应的资源一下网站列出了一些常见的状态码及解决方法:

链接:HTTP常见原因状态码

1.2.2 首部
HTTP首部字段请请求和相应报文添加了一些附加信息,本质上来说他们是一些名/值对的列表。
首部分类:

  • 通用首部:
    既可以出现在请求报文中,也可以出现在相应报文中。提供了与报文相关的最基本的信息。如Date、Connection、MIME-Version(给出了发送端使用的MIME版本)、
  • 请求首部:提供更多有关请求首部的内容。
1.Accept首部:为客户端提供了一种将其喜好和能力告知服务器的方法   Accept     告诉服务器能够发送那种媒体类型   Accept-Charset   告诉服务器能够发送那些字符集   Accept-Language  告诉服务器能够发送哪些语言2.条件请求首部:为请求加上某些限制   If-Match   获得与当前文档相匹配的文档   If-None-Match  获得与当前文档不匹配的文档
  • 响应首部:提供更多有关响应首部的内容。
  • 实体首部:描述主体的长度和内容,或者资源本身。
  • 拓展首部:规范中没有定义的新首部。

1.2.3 主体部分
实体的主体部分是HTTP报文的负荷,就是HTTP要传输的内容。

1.2.4 安全方法
GET方法和HEAD方法都被认为是安全的。使用安全方法的母的就是当使用可能引发某一动作的不安全方法时,允许HTTP应用程序开发者通知用户。

1.2.4.1GET方法和HEAD方法都是HTTP1.1规范要求实现的。HEAD方法只返回首部,不返回实体,利于我们在不获取资源的情况下了解资源的情况。此外,必须确保HEAD方法返回的首部和GET方法返回的首部相完全相同。

1.2.4.2 PUT方法
PUT方法与GET方法相反,PUT方法会向服务器写入文档。有些系统允许用户创建Web页面,用PUT将其直接安装到Web服务器上去。一般Web服务器会要求用户在执行PUT方法之前用密码登录。

1.2.4.3 POST方法
通常用POST方法来支持HTML中的表单,表单中填好的数据通常会被发送到服务器,然后由服务器把数据发送到它要去的地方(例如一个服务器网关程序)

1.2.4.4 TRACE方法
TRACE方法允许客户端在最终将请求发送给服务器时,看看他变成了啥样!此方法主要用于诊断。
1.2.4.5 OPTIONS方法
请求服务器告知其支持的各种方法

1.2.4.6 DELETE方法
请服务器删除请求URL所指定的资源,但客户端应用程序无法保证删除操作一定会被执行。

0 0