HTTP请求、响应格式

一、请求格式

注意:

即使不存在请求主体,这个空行也是必需的.

1.1 请求行

        请求方法:HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

        GET:最常见的一种请求方式,当客户端要从服务器中读取文档时,当点击网页上的链接或者通过在浏览器的地址栏输入网址来浏览网页的,使用的都是GET方式。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附加在URL后面,用一个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制。地址中”?”之后的部分就是通过GET发送的请求数据,各个数据之间用”&”符号隔开。显然,这种方式不适合传送私密数据。另外,由于不同的浏览器对地址的字符限制也有所不同,一般最多只能识别1024个字符,所以如果需要传送大量数据的时候,也不适合使用GET方式。

        POST:对于上面提到的不适合使用GET方式的情况,可以考虑使用POST方式,因为使用POST方法可以允许客户端给服务器提供信息较多。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。

        url:访问服务器哪个目录

        协议版本:HTTP版本有1.0和1.1两个版本, 1.0版本建立连接后立即断开,下次访 问需要再次建立连接, 1.1版本 建立连接后可以不用断开,直到不发送信息后 才断开节约了资源;

1.2 请求头

  • Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 表示客户端可以接受的内容类型,多个值使用;分号隔开q=0.9 表示权重优先级,*/*表示可以接受任意类型内容;
  • Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 表示客户端可以接受的语言
  • User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64x64; 浏览器信息,例如使用的是网景的内核, windows64位系统;
  • Accept-Encoding: gzip, deflate  支持的压缩格式
  • Host: localhost:8888   访问地址
  • Connection: keep-alive   保持连接 和HTTP1.1版本有关,默认保持3s
  • Content-Type: application/x-www-form-urlencoded  表单提交时才有可能出现,表示表单的数据类型,使用url编码,url编码 % 16位数
  • Content-Length: 7   post请求 请求体长度
  • Upgrade-Insecure-Requests: 1 告诉服务器,浏览器可以处理https协议

1.3 请求体

只有POST请求才有请求体, 因此 POST请求 请求体中存放的是表单提交的键值对。
例如:name=’zs’&age=10

总结:由上可知,get请求不安全且长度有限。

二、响应格式

2.1 状态行

状态码:

  • 1xx:指示信息--表示请求已接收,继续处理。
  • 2xx:成功--表示请求已被成功接收、理解、接受。
  • 3xx:重定向--要完成请求必须进行更进一步的操作。
  • 4xx:客户端错误--请求有语法错误或请求无法实现。
  • 5xx:服务器端错误--服务器未能实现合法的请求。

常见状态代码、状态描述的说明如下。

  • 200 OK:客户端请求成功。
  • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
  • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务。
  • 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
  • 500 Internal Server Error:服务器发生不可预期的错误。
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。

2.2 响应头

  • server: Apache-Coyote/1.1  服务器版本号
  • Set-Cookie:JSESSIONID=ECA8005D1235BBB6B9CFCC338A8206FD; Path=/03test; HttpOnly
  • Content-Type: text/html;charset=utf-8   响应字符集,告诉浏览器以什么样的字符集解码;
  • Content-Length: 265   响应体长度
  • Date: Fri, 23 Jun 2017 13:45:01 GMT    发送日期 少8个小时;
  • Expires: -1、Cache-control:no-cache、Pragma:no-cache  三个响应头一起使用, 表示禁止浏览器缓存当前页面. 每个浏览器厂商对认识的禁止头不同因此三个一起使用。
     

2.3 响应体

服务器端返回的数据

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HTTP请求响应消息都是由三个部分组成:起始行、消息头和消息体。下面分别介绍HTTP请求响应消息的格式: 1. HTTP请求消息格式 HTTP请求消息格式如下: ``` Method Request-URI HTTP-Version Headers Message Body ``` 其中,Method表示请求方法(如GET、POST、PUT等),Request-URI表示请求的资源标识符,HTTP-Version表示HTTP协议的版本号,Headers是一些请求头信息,Message Body是请求消息的主体内容。 举个例子,如果要请求一个网页,请求消息可以这样构造: ``` GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 Accept: text/html,application/xhtml+xml ``` 其中,GET表示请求方法为GET,/index.html表示请求的资源为网站首页,HTTP/1.1表示使用HTTP协议的版本为1.1,Host表示请求的主机名为www.example.com,User-Agent表示浏览器类型为Mozilla/5.0,Accept表示可接受的响应类型为text/html、application/xhtml+xml等。 2. HTTP响应消息格式 HTTP响应消息格式如下: ``` HTTP-Version Status-Code Reason-Phrase Headers Message Body ``` 其中,HTTP-Version表示HTTP协议的版本号,Status-Code表示请求处理的状态码,Reason-Phrase表示状态码对应的原因短语,Headers是一些响应头信息,Message Body是响应消息的主体内容。 举个例子,如果服务器返回一个网页,响应消息可以这样构造: ``` HTTP/1.1 200 OK Date: Thu, 01 Jul 2021 06:17:30 GMT Server: Apache/2.2.22 Content-Type: text/html;charset=utf-8 <!DOCTYPE html> <html> <head> <title>My Web Page</title> </head> <body> <!-- 页面内容 --> </body> </html> ``` 其中,HTTP/1.1表示使用HTTP协议的版本为1.1,200表示响应处理的状态码为200,OK表示状态码对应的原因短语为“OK”。Date表示响应的时间,Server表示服务器类型为Apache/2.2.22,Content-Type表示响应的内容类型为text/html;charset=utf-8。Message Body中的内容是HTML文档,用于显示网页的内容。 以上是HTTP请求响应消息的格式HTTP协议还有很多其他的特性和功能,需要根据具体的应用场景进行了解和学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Louie_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值