`
ccr1988
  • 浏览: 35623 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTP基础

    博客分类:
  • j2ee
阅读更多
HTTP的结构主要包括下面几个要点:
请求行与状态
通用信息
请求头
响应头
实体头
扩展头
HTTP的版本主要有1.0,1.1 和更高版本
   1.1 及以上版本允许在一个TCP连接上传送多个HTTP协议,1.0能 
   1.1 及以上版本多个请求和响应可以重叠,1.0不能
   1.1 增加了很多的请求头和响应头

请求消息的结构
    一个请求行,若干小心头,以及实体内容,其中的一些消息头和实体内容是可选的,消息头和实体内容需要空行隔开。
举例:
GET/music/musicTest.html  HTTP/1.1               -<------请求行
Accept:*/*                                      -<------消息头
Accept-Language: en-us                          -<------消息头
Connection: Keep-Alive                          -<------消息头
Host: LocatHost                                 -<------消息头
Referer: http://localhost/test.jsp              -<------消息头
User-Agent: Mozilla/4.0                         -<------消息头
Accept-Encoding: gzip,deflate                   -<------消息头
                                                        -<------一个空行
响应消息的结构
    一个状态行,若干个消息头,以及实体内容,其中的一些信息头和实体内容都是可选的,消息头和实体内容需要用空格隔开
举例:
   HTTP/1.1 200  OK                              -<------状态行
   Server: Microsoft-IIS/5.0                     -<------消息头
   Date: Thu,15 Jul 2012 05:14:32 GMT            -<------消息头
   Content-Length: 4500                          -<------消息头
   Content-Length: text/html                     -<------消息头
   Cache-control: private                        -<------消息头
                                                         -<------一个空行

   <HTML>                              -<------实体内容(网页将显示的内容)
   <BODY>
   。。。。。
注意点:
  一个使用GET 方式的请求消息中不能包含实体内容,只有使用POST,PUT或者DELETE方式的请求才可以包括实体内容

HTTP 消息头
   使用消息头可以实现HTTP客户机与服务器之间的条件请求和应答,消息头相当与服务器与浏览器之间的一些暗号请求
    消息头的格式: 头字段,冒号,空格,值,回车
    许多请求头字选允许客户端在值部分指定多个可接受的选项,多个选项之间用头号隔开
例如:Accept-Encoding: gzip,compress
有些头字段可以多次出现,例如,响应消息中可包含多个"Warning"

请求行
  格式:请求方式 资源路径  HTTP版本号〈CRLF〉
   举例:GET  /test.html  Http/1.1
  请求方式:Post Head,Options,Delete,Trace.Put,Get状态行
   格式:HTTP版本号 状态码 原因描述  〈CRLF〉
   举例: HTTP/1.1 200  OK    

   访问方式:  windows下 http 1.0(启动一个web服务器例如tomcat)

   cmd进入
   telnent  localhost  8080
   输入ctrl+]+回车
   输入GET  /工程名称/test.html   http/1.0
   2次回车
   返回下面:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
ETag: W/"480-1340419790000"
Last-Modified: Sat, 23 Jun 2012 02:49:50 GMT
Content-Type: text/html
Content-Length: 480
Date: Sat, 23 Jun 2012 03:04:36 GMT
Connection: close

<html>
.....
访问方式:  windows下 http 1.1

   cmd进入
   telnent  localhost  8080
   输入ctrl+]+回车
    输入GET /工程名称/test.html   http/1.0  回车
   输入Host: 回车
注意:在输入GET信息的时候出错了 不能修改 必须重新来一次 否则无法得到正确结果   


GET与POST
  1,get
       GET /工程名称/aaaservlet? firstname=fov&lastname=rui HTTP/1.1
       Host:
  2,post
       POST  /工程名称/servletURL HTTP/1.1
       Host:
       Content-Type: application/x-www-form-urlencoded
       Content-Length: 27
     
       firstname=fov&lastname=rui
响应状态码
    (1)100--199
        表示成功接受请求,要求客户端继续提交请求次能完成整个处理过程
    (2)200--299
        表示成功接受请求并已经完成整个处理过程
    (3)300-399
       为完成请求,客户需进一步细化请求,例如:请求资源已经移动到一个新的地址
    (4)400-499
       客户端的请求有错误
    (5)500-599
       服务器端出现错误
    经常遇见的错误例子:
     200(正常)
        表示一切正常,返回正确请求结果
     206(部分内容)
        客户端发多了一个带有Range头(要求服务器只返回文档中的部分内容)的GET请求,服务器按要求完整这个请求
     302/307(临时重定向)
       指出被请求的文档已被临时的移动到别处,此文档的新的URL在Location响应头中给出
     304(未修改)
        表示客户机缓存的版本是最新的,客户机应继续使用它
     401(未经授权)
        表示客户机访问的是一个受口令和密码保护的页面,结合使用一个WWW-Authenticate响应头提示客户机重新发一个带有Authorization头的消息请求
     404(找不到)
        服务器上不存在客户机所请求的资源
     500(内部服务错误)
       服务器端的CGI,JSP等程序发生的错误

通用消息头
     通用消息头字段能用于请求消息,也能够用于响应消息,它包括一些与被传输的实体内容没有关系的常用字段
     Cache-Control   <no-cache>--------(通知代理服务器,是否对缓存的信息进行最新) no-cache表示不需要缓存
     Connection      <colse>------------- (表示请求完只有的操作)
     Date                                        (表示HTTP消息产生的时间)
     Pragma             only<no-cache> (表示客户端不要缓存信息)        
     Trailer               Date                 (表示某字段位与位于实体内容的后面) 表示Date位于实体内容的后面   
     Transfer-Encoding  <chunked>   (指定实体部分传输编码)     
     Upgrade  HTTP/2.0  SHTTP/1.3  (表示协议的切换,允许服务器切换到某协议执行)
     Via  HTTP/1.1 Proxy1 HTTP/1.1 Proxy2 (表示规定代理服务器遵循的协议)
     Warning                                   (提高信息)
    例子:
       GET /工程名称/aaaservlet? firstname=fov&lastname=rui HTTP/1.1
       Host:
       Connection:close
请求头
    请求头字段用于客户端在请求消息中向服务器传递附加信息,主要包括客户端可以接受的数据类型,压缩方法,语言,以及发出请求的超链接所属网页的URL
    地址等信息。
    Accept: text/html,image/*
    Accept-Charset: ISO-8859-1,unicode-1-1    (服务器传输信息的编码信息)
    Accept-Encoding: gzip,compress                (服务器压缩编码)
    Accept-Laguage: en-gb,zh-cn                    ( 返回语言格式)
    Authorization:                                         ( 设置口令密码)
    Proxy-Authorization
    ......
    例子:
     telent www.google.cn
     GET /HTTP/1.1
     Host:
    Accept-Language: zh-cn
实体头
   用作实体内容的元信息,描述了实体的内容属性,包括实体信息类型,长度,压缩方法,最后一次修改时间,数据有效期等
    Allow:  GET,POST
    Content-Encoding: gzip
    Content-Language: zh-cn
    Content-Length: 90
    Content-Location: ..                   封装实体的位置
    Content-MD5:..                         对实体内容的MD5加密
    Content-Range: byte  2415-45664/8790   服务器返回部分实体的位置
    Content-type-Type: text/html,charset=GB3212   实体类型  [mime的类型方式]
    Expire                                                            过期时间
    Last-Modified                           文档最后更新时间

扩展头
   Refresh
    Refresh:  1                            多久再放送一次请求
    REfresh:  1;url=http://www.baidu.com    1秒后跳到www.baidu.com页
   Content-Disposition
    Content-Type: application/octet-stream
    Content-Disposition: attachment;filename=aaa.zip       
                      
1
0
分享到:
评论

相关推荐

    HTTP基础知识培训

    HTTP基础知识培训是一场针对IT行业测试领域的专业课程,旨在帮助团队成员掌握HTTP协议的基本知识和实践应用。培训内容广泛,涵盖了从基础的HTTP协议概述到请求/响应模型,再到各种请求方法和状态码,以及HTTP协议在...

    HTTP基础类

    本篇将深入探讨HTTP基础类及其在编程中的应用。 HTTP协议的核心概念包括请求(Request)和响应(Response)。请求由客户端发起,包含一个方法(GET、POST等)、一个URL、HTTP版本、请求头部以及可能的请求体。响应...

    servlet+jsp+http基础

    【HTTP基础】 HTTP(Hypertext Transfer Protocol)是互联网上的应用最广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。HTTP是无状态的,意味着每个请求都被视为独立的事务,服务器不会...

    HTTP基础8张脑图.zip

    下面将通过分析标题和描述中的8张脑图,逐一探讨HTTP的基础知识。 1. **客户端和服务器端交互基础**: 这一脑图可能涵盖了HTTP请求和响应的基本结构,包括请求方法(GET、POST等)、请求头、请求体以及响应状态码...

    p12 - p28TCP基础篇

    本篇文章主要介绍了 HTTP 基础知识,包括 HTTP 的基本概念、Get 与 Post、HTTP 特性、HTTPS 与 HTTP、HTTP/1.1、HTTP/2、HTTP/3 演变等。 HTTP 基本概念 ---------------- HTTP 是超文本传输协议,英文全称为 ...

    基于java实现计算机网络的基础知识(TCPIP,HTTPHTTPS)等源码.zip

    HTTPS(安全超文本传输协议)是在HTTP基础上加入了SSL/TLS加密层,以保证数据传输的安全性。在Java中,`javax.net.ssl.HttpsURLConnection`类可以处理HTTPS连接,同时需要配置信任的证书和密钥。理解HTTPS的工作原理...

    Java程序设计之网络编程基础教程课件

    - HTTPS(HTTP over SSL/TLS):在HTTP基础上增加了SSL/TLS安全协议,提供数据加密、服务器身份验证和消息完整性检查,确保数据传输的安全性。 6. NIO(Non-blocking I/O) Java 1.4引入了NIO,提供了非阻塞I/O...

    计算机网络基础知识!!!!

    在互联网上,HTTP(Hypertext Transfer Protocol)是应用层的主要协议,用于浏览器和服务器之间的通信,而HTTPS(HTTP over Secure Socket Layer)是在HTTP基础上增加了SSL/TLS加密,用于保护用户数据的安全。...

    第11章 网络开发基础.zip

    1. HTTPS(超文本传输安全协议)是在HTTP基础上加入SSL/TLS加密,提供数据传输的安全性。证书和公钥基础设施(PKI)是HTTPS安全的关键,确保了服务器身份的验证和数据的加密。 四、TCP与UDP 1. TCP是一种面向连接的...

    《c#网络应用编程基础》习题解答

    3. **HTTP与HTTPS**:HTTP是超文本传输协议,用于在Web上进行数据交换,而HTTPS是在HTTP基础上加入SSL/TLS安全协议,提供加密传输和身份认证,确保数据的安全性。掌握如何使用C#的HttpWebRequest和HttpWebResponse类...

    HTTP与FTP协议基础

    HTTP与FTP协议基础

    http权威指南和JavaScript权威指南6

    1. HTTP基础:包括HTTP方法(GET、POST、PUT、DELETE等),状态码及其含义,以及HTTP报文结构。 2. 请求与响应:解析请求头、响应头,理解Cookie、Session的使用,以及如何处理重定向和缓存。 3. 连接管理:了解持久...

    HTTP+Developer_s+Handbook+.pdf

    #### 三、HTTP基础知识 - **第1章:什么是HTTP?** - **HTTP的历史与目的:** 介绍了HTTP协议的发展历程及其在Web中的作用。 - **第2章:互联网与万维网** - **互联网概述:** 讨论了互联网的基本概念和技术。 ...

    JavaWeb程序设计入门课件HTTP协议共9页.pdf

    【描述】"JavaWeb程序设计入门课件HTTP协议共9页.pdf.zip" 指出这是一个压缩文件,其中包含9页关于HTTP协议的PDF文档,可能是详细讲解上述概念的课件,适合初学者快速掌握JavaWeb开发中的HTTP基础知识。 【标签】...

    编写简单的HTTP 1.0客户端/服务器程序:.编写多线程Web服务器:编写简单的RMI程序

    总结来说,这个实验涵盖了HTTP基础、多线程Web服务器的实现以及Java RMI的应用,这些都是构建复杂网络应用程序的基础。每个部分都至关重要,理解和掌握它们对于成为一名合格的IT专业人士至关重要。通过实践,你可以...

    python网络编程基础

    Python网络编程基础是入门Python网络应用开发的重要领域,它涵盖了从基本的网络概念到复杂的网络交互技术。在Python中,网络编程主要涉及TCP/IP协议、HTTP协议、套接字编程、Web服务API调用等多个方面。下面将详细...

    HTTP_2基础教程.pdf

    如今互联网发展日新月异,HTTP/1.1 协议已经难以承载日益复杂的网页内容,因此 HTTP/2 值得尝试。本书介绍了 HTTP/2 的设计初衷和新特性,对比了在不同网络环境下以及不同浏览器 上 HTTP/1.1 与 HTTP/2 的性能表现...

    简单的Http方式服务器与 android客户端的交互Demo

    总结,"简单的Http方式服务器与Android客户端的交互Demo"涵盖了HTTP基础,服务器端与Android客户端的通信机制,以及如何在实际应用中实现这一交互。通过理解和实践这些知识点,开发者能够创建功能完善的网络应用,...

    计算机基础.pdf

    - **HTTPS**(HTTP Secure):安全的超文本传输协议,在HTTP的基础上加入了SSL/TLS加密层,保证数据传输的安全性。 3. **DNS(Domain Name System)域名系统**: - **作用**:将易于记忆的域名转换为计算机可识别...

Global site tag (gtag.js) - Google Analytics