一 HTTP请求报文(http://en.wikipedia.org/wiki/List_of_HTTP_header_fields)

请求报文由三部分组成:请求行,请求头和请求体。

请求行:请求方法(如POST),请求URL地址(和请求头Host属性组成完整URL),HTTP协议及版本。

请求头:包含若干个属性,格式为“属性名:属性值”。

请求体:以param1=value1&param2=value2的键值对形式编码成的格式化串,承载多个请求参数的数据。除了请求体外,请求URL也可以通过“?param1=value1&param2=value2”的方式传递数据。

常见的HTTP请求头属性:

Accept:客户端接收的响应类型,可以为一个或多个MIME类型的值。

Cookie:客户端Cookie,可以将jsessionid放在Cookie中。

Referer:表示请求是从哪个URL过来的。

Cache-Control:指定在整个请求响应链中必须遵守的缓存机制。

Content-Length:请求体得字节数。

服务器端通过HttpServletRequest读取请求头。其中一些典型的请求头属性,例如Cooke,Locale和ContentLength等有直接读取的API。对于HttpSession,是读取请求头Cookie属性中jsessionid的值,然后在服务器端一个会话Map中根据jsessionid获取HttpSession对象,实现会话管理。

二 HTTP响应报文

HTTP响应由三部分组成:响应行,响应头和响应体。

响应行:Http协议及版本,响应状态吗及描述。

响应头:同样由多个属性组成。

响应体:返回的资源。

响应状态吗:(http://en.wikipedia.org/wiki/List_of_HTTP_status_codes )

1XX:收到请求,正在处理等。

2XX:处理成功,处理完成等。如200 OK处理成功。

3XX:重定向等。如303 See Other,重定向到Location中;303 Not Modified。

4XX:发生错误,责任在客户端。如404 Not Found。

5XX:发生错误,责任在服务端。如500 Internal Server Error。

常见的HTTP响应头属性:

Cache-Control:设置缓存策略,在缓存时间内再次访问资源应该直接从客户端缓存中返回内容,具体实现靠客户端实现。

ETag:服务器资源的具体版本,只在统一URL下,比较ETag才有意义。

Last-Modified:所请求实体的最后修改日期。

Location:一个URL,让客户端重定向。

Set-Cookie:服务器设置客户端的Cookie。

服务器通过HttpServletResponse的API写响应头的属性。如Cookie,Location等提供了直接操作的API。

Http请求和响应报文基础知识的更多相关文章

  1. #WEB安全基础 : HTTP协议 | 0x10 请求和响应报文重点结构及常见头部

    你需要认识一些常见的头部以及了解报文的详细结构 请求报文的请求行 GET/HTTP/1.1 响应报文的响应行 HTTP/1.1 200 OK 想必这些大家都知道了 请求 我访问一个页面 Host // ...

  2. http协议基础(二)请求和响应报文的构成

    http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...

  3. 一次完整的HTTP请求与响应涉及哪些知识?

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:Ruheng 地址:http://www.jianshu.com/p/c1d6a294d3c0 本文以HTTP请求和响 ...

  4. HTTP请求、响应报文格式

    HTTP请求报文格式: HTTP请求报文主要由请求行.请求头部.空行以及请求正文4部分组成 1,请求行由3部分组成,分别为:请求方式,URI(注意这里不是URL)以及协议版本组成,之间由空格分隔 请求 ...

  5. HTTP请求与响应报文详解

    如图所示,这是客户端往服务器发送请求时的报文: 一般来说,将报文分成三个部分,请求行.请求头.请求体 如图,请求行包括三部分内容 1.请求方法,在HTTP里的请求方法种类较多,但就移动端开发来说,常用 ...

  6. http协议(二)请求和响应报文的构成

    http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...

  7. HTTP的请求报文与响应报文

    报文: 简单来说,报文就是也就是HTTP报文,作用是在各个系统之间进行和响应时用来交换与传输的数据单元,即站点一次性要发送的数据块,这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义 ...

  8. HTTP 请求报文和响应报文分析和解刨!!

    http请求和响应报文分析 一>http请求报文主要包括三个部分:1.请求行:2.请求头:3;请求体: 1,请求行一般包括三个部分:请求方式:请求url : http协议版本. 请求方法:大部分 ...

  9. HTTP基础知识(二)

    接着上一章的内容:HTTP基础知识(一)   二.简单的HTTP协议 1.客户端:请求访问文本或图像等资源的一端称为客户端: 服务器端:提供资源响应的一端   2.以百度为例子 这是请求头: 在起始行 ...

随机推荐

  1. 拉姆达表达式(Lambda Expressions)

    上面两种写法是一样的 ,拉姆达表达式也是一种委托, 但引用的是匿名方法

  2. get请求与post请求

    1. get是从服务器上获取数据,post是向服务器传送数据.2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过H ...

  3. FineUI上传控件

    文件上传 现在就简单多了,并且也漂亮多了,参考这个示例. 1: <ext:SimpleForm ID="SimpleForm1" BodyPadding="5px& ...

  4. Markdown 学习笔记: Basics

    Markdown 学习笔记: Basics 原文:Basics. 了解Markdown格式化句法的要点 本页对如何使用Markdown提供了一个简单的概述.在"句法"页中对Mark ...

  5. POJ 1743 - Musical Theme 最长不重叠重复子串

    题意:    给出一列数据,问你其中重复的最长连续子串的长度    但是有要求:        1. 长度至少为 5 .        2. 两串可以不相等,但两串每个对应位置的数字相减差值固定 (即 ...

  6. HDU 4612 (13年多校第二场1002)无向图缩点,有重边

    这道题是多校的题,比赛的时候是一道纷纷水过的板刷题. 题意:给你一些无向边,只加一条边,使该图的桥最少,然后输出最少的桥. 思路:当时大致想到思路了,就是缩点之后找出最长的链,然后用总的桥数减去链上的 ...

  7. Oracle11g R2学习系列 之十 解决EM不能用

    不知道是什么原因https://localhost:1158/em,今天突然就不能用了.做了好多搜索也没有解决.现象是在services.msc中,不能重启OracleDBConsole服务,提示: ...

  8. C++第一课(2013.9.26 )

    //C++三大特性:封装,继承,多态 //C++新增的数据类型:bool型 一个字节 真 true 假 false //case 定义变量的问题 ; switch(nValue) { : { prin ...

  9. eclipse添加xsd

    图片参考 http://wenku.baidu.com/link?url=DFHWF_yD-M-GCt2tfjs1npPs1xhNlyxik7i_pCBjw3oVlbssYrMvLNucuUpKg75 ...

  10. tableview 里面的 必须配套使用的方法

    1: 如果不配套的先给出  footer的高度,那么  即时有view 可能也显示不出来 - (CGFloat)tableView:(UITableView *)tableView heightFor ...