Http请求与响应格式

原文:http://www.cnblogs.com/z941030/p/4699779.html

Http协议对浏览器发出的Request格式以及对Web服务器发出的Response格式有具体的规定。

请求部分由三部分组成:

  • Requset line:请求行,位于第一行
  • Request headers:请求消息头,从第二行开始至第一个空行结束
  • Request body:请求正文,从第一个空行之后的都是正文

响应部分也由三部分组成:

  • Response line:响应行,位于第一行
  • Response headers:响应消息头,从第二行开始至第一个空行结束
  • Response body:响应正文,从第一个空行之后的都是正文

一、Http请求

Http请求具体格式如下:


Method Path-to-resource Http/Version-number


User-agent 浏览器的类型

Accept 浏览器接受的MIME类型

Accept language 用户选择的接受语言

Accept-charset 用户首选的编码字符集

……


          空行


Option Request Body

①请求行:

1.Method为请求方式,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE,常用的是GET和POST

GET的特点:默认的请求方式。
当请求的资源路径为/SdustExam/Login.jsp?username=admin&password=123456时,GET方式会把表单的请求的数据放在请求的URI的后面,?username=admin&password=123456,这样会暴露数据,而且请求行长度有限。

POST的特点(经常使用的):借助HTML中的form表单。<form action="Login.jsp" method="post">请求参数出现在正文部分,长度木有限制,相对安全。

2.Path-to-resource :请求的资源的URI。例如/SdustExam/Login.jsp

3.Http/Version-number:客户端使用的协议的版本,有HTTP/1.0和HTTP/1.1。

HTTP/1.0:特点:每次请求服务器上的资源都要建立新的连接,响应完毕后都会关闭连接。是无状态的协议。
HTTP/1.1:特点:在一次TCP/IP连接的基础上可以发出多次请求和得到多次的响应。比1.0多了一些请求和响应头。

②请求消息头

向服务器传递附加信息

Accept:通知服务器,浏览器可以接受的MIME类型。(文件系统中用文件扩展名区分数据的类型。网络上用MIME类型来区分数据类型。Tomcat\conf\web.xml)
MIME类型名称:大类型/小类型 如text/html、text/css等等
Accept-Charset:通知服务器,浏览器支持的字符集,如gbk,utf-8
Accept-Encoding:通知服务器,浏览器能够解码的数据压缩方式。比如:gzip
Accept-language:通知服务器,所希望的语言
Host:请求的主机和端口
Referer:是一个URL地址。取值是当前页面之前的那个页面地址的。防盗链用
Content-Type:通知服务器,请求正文的MIME类型。取值:application/x-www-form-urlencoded默认值,对应的是form表单的enctype属性
If-Modified-Since:通知服务器,缓存的文件的最后修改时间。
User-Agent:通知服务器,浏览器类型.
Content-Length:表示请求消息正文的长度 
Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接 )
Cookie:这是最重要的请求头信息之一(会话有关)

二、http响应

http响应具体格式如下:


Http/Version-number  Statuscode  message


Server 服务器的类型信息

Content-type 响应的MIME类型信息

Content-length 被包含在相应类型中的字符数量

……


          空行


Option Response Body

①响应行:

Http/Version-number:服务器用的协议版本
Statuscode:响应码。代表服务器处理的结果的一种表示,常用的响应码有:
      200:正常
      302/307:重定向
      304:服务器的资源没有被修改
      404:请求的资源不存在
      500:服务器报错了
message:响应码描述。例如200的描述为OK

②响应消息头:

Location:通知客户端,指示新的资源的位置(结合302/307来用。请求重定向)
Server:通知客户端,服务器的类型
Content-Encoding:通知客户端,响应正文的压缩编码方式。常用的是gzip。
Content-Length:通知客户端响应正文的数据大小
Content-Type:通知客户端响应正文的MIME类型
Refresh:让浏览器自动刷新。取值为整数(刷新的时间间隔,单位是秒)
     Refresh:3
     Refresh:3;URL=其他资源的URI
Content-Disposition:通知客户端,以下载的方式打开资源。
Content-Disposition:attachment;filename=1.jpg
Set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie(会话有关)
Expires: -1 网页的有效时间。单位是毫秒,-1为通知客户端不要缓存
Cache-Control: no-cache (1.1)  通知客户端不要缓存
Pragma: no-cache (1.0) 通知客户端不要缓存

时间: 2024-10-05 05:50:00

Http请求与响应格式的相关文章

angular学习笔记(二十五)-$http(3)-转换请求和响应格式

本篇主要讲解$http(config)的config中的tranformRequest项和transformResponse项 1. transformRequest: $http({ transformRequest: function(data){ //对前台发送的data进行处理 return data } }) 这个在测试的时候遇到了很大的问题.只要经过transformRequest函数处理,哪怕是不做任何处理,node后台都会报错,需要尝试使用php 2. transformResp

HTTP——请求和响应格式

HTTP请求格式:<request-line><headers><blank line>[<request-body>]说明:第一行必须是一个请求行(request-line),用来说明请求类型,要访问的资源以及所使用的HTTP版本.      紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息.      之后是一个空行.      再后面可以添加任意的其他数据[称之为主体(body)].例1 GET请求: GET / HTTP/1.1A

HTTP请求和响应格式详细解析

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POS

http请求和响应格式

HTTP请求格式 当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成: 请求方法 URI协议 版本 请求头(Request Header) 请求正文 下面是一个HTTP请求的例子:GET/sample.jspHTTP/1.1Accept:image/gif.image/jpeg,*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozila/4.0(c

[WEB API] CLIENT 指定请求及回应格式(XML/JSON)

[Web API] Client 指定请求及响应格式(xml/json) Web API 支持的格式请参考 http://www.asp.net/web-api/overview/formats-and-model-binding 本篇则要演练xml/json 回应 Get 定义 Header:Content-Type 定义 QueryString 请求 Post POST json 数据 POST xml 数据 回应 Get 定义 Header:Content-Type 测试工具:本来想用 p

http请求响应格式

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:l   请求方法URI协议/版本l   请求头(Request Header)l   请求正文下面是一个HTTP请求的例子:GET/sample.jspHTTP/1.1 Accept:image/gif.image/jpeg,*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozila/4.0(co

HTTP请求格式和响应格式

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成: l   请求方法URI协议/版本 l   请求头(Request Header) l   请求正文 下面是一个HTTP请求的例子: GET/sample.jspHTTP/1.1 Accept:image/gif.image/jpeg,*/* Accept-Language:zh-cn Connection:Keep-Alive Host:localhost User-Agent:Mozi

HTTP请求格式和HTTP响应格式

HTTP请求格式 "GET {} HTTP/1.1\r\nhost: {}\r\nConnection\r\n\r\n".format(path, host) Request Header GET / HTTP/1.1Host: www.baidu.comConnection: keep-aliveUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36

http请求与响应全过程

HTTP 无状态性 HTTP 协议是无状态的(stateless).也就是说,同一个客户端第二次访问同一个服务器上的页面时,服务器无法知道这个客户端曾经访问过,服务器也无法分辨不同的客户端.HTTP 的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP 请求. HTTP 持久连接       HTTP1.0 使用的是非持久连接,主要缺点是客户端必须为每一个待请求的对象建立并维护一个新的连接,即每请求一个文档就要有两倍RTT 的开销.因为同一个页面可能存在多个对象,所以非持久连接可