HTTP协议 常用 总结

来源:互联网 发布:东北林业大学 知乎 编辑:程序博客网 时间:2024/04/29 17:41

HTTP协议 常用 总结


写在前面:最近各种事情,一边整项目,一边各种找实习,各种受鄙视,很久没有更新博客了。其实,大神都是,BLOG是写给自己看的。确实是这样,记录下自己的学习过程,以后方面复习。废话不多说了~~

①    http协议是建立在tcp/ip协议基础上

②    http协议全称 超文本传输协议

③    http协议1.0 , 1.1版本 ,目前通用的是1.1版本

http1.0 称为短连接    http1.1 称为长连接.

所谓长,和短指的是  持续时间的 长连接 1.1 30s ,短连接是发送完数据就断掉. 


Http协议

HTTP 协议的主要特点可概括如下:

1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP 协议简单,使得HTTP 服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型Content-Type 加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5.无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。


Http 请求由三部分组成,分别是:请求行、消息报头、请求正文



基本结构:

[消息头格式 (消息名内容 )


GET /test/hello.html HTTP/1.1 [请求行]

Accept: */*  [消息名消息名:内容

Referer: http://localhost:8080/test/abc.html 

Accept-Language: zh-cn

User-Agent: Mozilla/4.0

Accept-Encoding: gzip, deflate 

Host: http://www.sohu.com:80

Connection: Keep-Alive     

特别说明: 并不是每一次请求的消息头都一样.]

空行

发送的内容 [格式 : 内容名字=内容体]


  http请求消息头

  • 1    Accept: text/html,image/*  [告诉服务器,我可以接受文本,网页,图片]
  • 2.   Accept-Charset: ISO-8859-1 [接受字符编码iso-8859-1]
  • 3.   Accept-Encoding: gzip,compress [可以接受 gzip,compress压缩后数据.]
  • 4.   Accept-Language: en-us,zh-cn [浏览器支持中,英文]
  • 5.   Host: www.sohu.com:80 [我要找主机是www.sohu.com:80]
  • 6.   If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT [ 告诉服务器,我的缓冲中有这个资源文件,该文件的时间是。。。]
  • 7.   Referer: http://www.sohu.com/index.jsp  [告诉服务器,我来自哪里,该消息头,常用于防止盗链]
  • 8.   User-Agent:Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)[告诉服务器,浏览器内核]
  • 9.   Cookie [cookie??]
  • 10. Connection:close/Keep-Alive   [保持连接,发完数据后,我不关闭连接]
  • 11.  Date: Tue, 11Jul 2000 18:23:51 GMT [浏览器发送该http请求的时间]



请求行以一个方法符号开头,以空格分开,后面跟着请求的URI 和协议的版本,格式如下:Method  Request-URI  HTTP-Version CRLF其中Method 表示请求方法;Request-URI 是一个统一资源标识符;HTTP-Version 表示请求的HTTP 协议版本;CRLF 表示回车和换行(除了作为结尾的CRLF 外,不允许出现单独的CR 或LF 字符)。

      请求方法(所有方法全为大写)有多种,各个方法的解释如下:

       GET  请求获取Request-URI 所标识的资源

       POST 在Request-URI 所标识的资源后附加新的数据

       HEAD 请求获取由Request-URI 所标识的资源的响应消息报头



状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:


格式:HTTP版本号 状态码 原因叙述

举例:HTTP/1.1 200 OK

状态码                      含义

100-199         表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程

200-299         表示成功接收请求并完成整个处理过程,常用200

300-399         为完成请求,客户需要进行一步细化请求。例如:请求的资源已经移动一个新的地址,常用302,307

400-499         客户端的请求有错误404

500-599         服务器端出现错误,常用500  



  •   http响应消息头详解
  • n  Location: http://www.baidu.org/index.jsp  【让浏览器重新定位到url
  • n  Server:apache tomcat 【告诉浏览器我是tomcat
  • n  Content-Encoding: gzip 【告诉浏览器我使用 gzip
  • n  Content-Length: 80  【告诉浏览器会送的数据大小80节】
  • n  Content-Language: zh-cn 【支持中文】
  • n  Content-Type: text/html; charset=GB2312 [内容格式text/html; 编码gab2312]
  • n  Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT【告诉浏览器,该资源上次更新时间】
  • Refresh: 1;url=http://www.baidu.com【过多久去,刷新到 http://www.baidu.com
  • Content-Disposition: attachment; filename=aaa.zip【告诉浏览器,有文件下载】
  • n  Transfer-Encoding: chunked  [传输的编码]
  • n  Set-Cookie:SS=Q0=5Lb_nQ;path=/search[后面详讲]
  • Expires: -1[告诉浏览器如何缓存页面IE]
  • n  Cache-Control: no-cache  [告诉浏览器如何缓存页面火狐]
  • n  Pragma: no-cache   [告诉浏览器如何缓存页面]
  • n Connection: close/Keep-Alive  [保持连接 1.1是Keep-Alive]
  • n  Date: Tue, 11 Jul 200018:23:51 GMT



0 0