一 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。

最新文章

  1. [Asp.net mvc]jquery.form.js无刷新上传
  2. C语言错误: HEAP CORRUPTION DETECTED
  3. DDL, DML不是所有SQL都是可以自动回滚的
  4. java中为什么byte的取值范围是-128到+127
  5. Difference Between Performance Testing, Load Testing and Stress Testing
  6. Java多线程之DaemonThreadFactory
  7. React入门2
  8. [时间操作] C#DateFormat时间帮助类 (转载)
  9. struts2的配置和使用
  10. Maven, IntellJ Idea 配置注意点
  11. office软件卸载
  12. Android 网络通信框架Volley基本介绍
  13. C#流程控制语句--分支语句(if,switch,三位运算符)
  14. web安全系列2:http初探
  15. H5内联视频总结
  16. sudo的使用和配置
  17. Sublime Text 之运行 js 方法[2015-5-6更新mac下执行js]
  18. 【LibreOJ】#6392. 「THUPC2018」密码学第三次小作业 / Rsa 扩展欧几里得算法
  19. C/C++杂记:深入理解数据成员指针、函数成员指针
  20. C#与Java的语法差异

热门文章

  1. SqlCommand和SqlDataAdapter有什么区别
  2. Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作
  3. PHP连接Microsoft SQL Server 2005/2008
  4. 转载:struts标签<s:date>的使用
  5. UESTC 75 The Queen's New Necklaces
  6. LeetCode_Longest Substring Without Repeating Characters
  7. windows下删除Linux
  8. Android模仿微信语音聊天功能
  9. 【转】Linux下tar.xz结尾的文件的解压方法--不错
  10. c++ 12