HTTP中传输协议的数据格式

HTTP

  • 概述:超文本传输协议(Hyper Text Transfer Protocol)

  • 传输协议:定义了客户端和服务器通信时,发送数据的格式

  • 客户端和服务器端交互:客户端向服务器端发送请求,服务器端向客户端响应请求

  • HTTP特点:

    • 基于 TCP/IP 的高级协议
    • 默认端口号:80
    • 基于请求/响应模型的-一次请求对应一次响应
    • 无状态的:每次请求之间相互独立,不能交互数据

Request:请求消息数据格式

  • 概述:客户端发送给服务器端的数据

  • 请求行的格式

    GET /login.html HTTP/1.1				 // 请求方式 请求url 请求协议/版本
    
  • 请求方式:HTTP协议中有 7 种请求方式,常用的有下边 2种

    • GET
      • 请求参数在请求行中,在URL后
      • 请求的URL长度有限制
      • 不太安全
    • POST
      • 请求参数在请求体
      • 请求的URL长度没有限制
      • 相对安全
  • 请求头:客户端浏览器告诉服务器一些信息

    • 请求头格式

      • 请求头名称:请求头值
    • 常见的请求头

      • User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息,可以在服务器端获取该头的信息,解决浏览器的兼容性问题

      • Referer:告诉服务器,当前请求从哪里来,可以用于防盗链和统计工作

  • 请求空行:用来分割 POST 请求的请求头和请求体的

  • 请求体(正文):封装 POST 请求消息的请求参数

  • 示例代码

    POST /login.html	HTTP/1.1									// 请求行
    Host: localhost                                                 // 请求头
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Referer: http://localhost/login.html
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    														//	请求空行	
    username=zhangsan	                                    //  请求体
    

Response:响应消息数据格式

  • 概述:服务器端发送给客户端的数据

  • 响应行:

    • 格式:协议/版本 响应状态码 状态码描述
    • 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态,状态码都是 3 位数字
    • 响应状态码分类:
    响应状态码作用
    1xx服务器接收客户端的消息,但没有接收完成,等待一段时间后,发送 1xx 状态码
    2xx成功,状态码:200
    3xx重定向,代表:302(重定向),304(访问缓存)
    4xx客户端错误,代表:404(请求路径没有对应的资源),405(请求方式没有对应的 doXxx方法)
    5xx服务器端错误,代表:500(服务器内部出现异常)
  • 响应头:

    • 格式:头名称:值
    • 常见响应头:
    响应头名称作用
    Content-Type服务器告诉客户端本次响应体数据格式以及编码格式
    Content-disposition服务器告诉客户端以什么格式打开响应体数据
    响应头的名称响应头的值响应值的作用
    Content-Typetext/plain纯文本格式,适合显示普通文本内容
    text/htmlHTML格式,用于显示网页内容
    application/jsonJSON格式,用于传输和解析 JSON 数据
    application/xmlXML格式,用于传输和解析 XML 数据
    application/pdfPDF格式,用于传输和现实 PDF 文档
    image/jpegJPEG图像格式,用于传输和显示 JPEG 图片
    image/pngPNG图像格式,用于传输和显示 PNG 图片
    audio/mpegMPEG 音频格式,用于传输和播放音频文件
    video/mp4MP4 视频格式,用于传输和播放视频文件
    multipart/form-data用于在 HTTP POST 请求中上传文件和表单数据
    Content-dispositionin-line默认值,在当前页面内打开
    attachment;filename=xx以附件形式打开响应体。文件下载
  • 响应空行

  • 响应体:通过POST方式传输的数据

  • 示例代码

    HTTP/1.1 200 OK									// 响应体
    Content-Type: text/html;charset=UTF-8			// 响应头,html 方式传输
    Content-Length: 101
    Date: Wed, 06 Jun 2018 07:08:42 GMT
    
    <html>
    <head>
    <title>响应消息</title>
    </head>
    <body>
    	hello , response
    </body>
    </html>
    
  • 28
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值