前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5. http协议简介、http请求以及响应介绍

5. http协议简介、http请求以及响应介绍

作者头像
Devops海洋的渔夫
发布2021-11-02 11:30:11
8360
发布2021-11-02 11:30:11
举报
文章被收录于专栏:Devops专栏

5. http协议简介、http请求以及响应介绍

http协议概述

1. 什么是HTTP协议

HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,传输HTML文件。

HTTP是互联网上用的最多的一个协议, 所有的www开头的都是遵循这个协议的(可能是https)

2. HTTP协议的作用

HTTP作用:用于定义WEB浏览器与WEB服务器之间 交换数据的过程 和 数据本身的 内容

浏览器和服务器交互过程: 浏览器请求, 服务请求响应

请求(请求行,请求头,请求体)

响应(响应行,响应头,响应体)

3.小结

  1. HTTP协议: 超文本传输协议,它就定义了客户端与服务器端进行交互时候的规则
  2. HTTP协议的作用: 定义客户端与服务器端交互的过程以及传输的数据

http请求

img

  • get方式请求
代码语言:javascript
复制
【请求行】
GET /myApp/success.html?username=zs&password=123456 HTTP/1.1

【请求头】
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 41723-10011
Referer: http://localhost:8080/myApp/login.html
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (MSIE 9.0; qdesk 2.4.1266.203; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: localhost:8080
Connection: Keep-Alive
Cookie: Idea-b77ddca6=4bc282fe-febf-4fd1-b6c9-72e9e0f381e8
  • post请求
代码语言:javascript
复制
【请求行】
POST /myApp/success.html HTTP/1.1

【请求头】
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 37569-10012
Referer: http://localhost:8080/myApp/login.html
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (MSIE 9.0; qdesk 2.4.1266.203; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 27
Connection: Keep-Alive
Cache-Control: no-cache

【请求体】
username=zs&password=123456

1. 请求行

  • 请求行
代码语言:javascript
复制
GET  /myApp/success.html?username=zs&password=123456 HTTP/1.1 
POST /myApp/success.html HTTP/1.1
  • 请求方式(8种,put,delete等) GET:明文传输, 不安全,参数跟在请求路径后面,对请求参数大小有限制, POST: 暗文传输,安全一些,请求参数在请求体里,对请求参数大小没有有限制,
  • URI:统一资源标识符(即:去掉协议和IP地址部分)
  • 协议版本:HTTP/1.1

2. 请求头

从第2行到空行处,都叫请求头,以键值对的形式存在,但存在一个key对应多个值的请求头.

作用:浏览器告诉服务器自己相关的设置.

  • Accept:浏览器可接受的MIME类型 ,告诉服务器客户端能接收什么样类型的文件。
  • User-Agent:浏览器信息.(浏览器类型, 浏览器的版本....)
  • Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
  • Content-Length:表示请求参数的长度
  • Host:初始URL中的主机和端口
  • Referrer:从哪里里来的(之前是哪个资源)、防盗链
  • Content-Type:内容类型,告诉服务器,浏览器传输数据的MIME类型,文件传输的类型,application/x-www-form-urlencoded .
  • Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip
  • Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接 )
  • Cookie:这是最重要的请求头信息之一(会话技术, 后面会有专门的时间来讲的)
  • Date:Date: Mon, 22Aug 2011 01:55:39 GMT请求时间GMT

3. 请求体

只有请求方式是post的时候,才有请求体. 即post请求时,请求参数(提交的数据)所在的位置

4.小结

代码语言:javascript
复制
1. 请求行
  	   	1. 请求方式
  	   	2. 请求路径
2. 请求头: 它是由键值对构成
3. 请求体: 只有post请求才有请求体,post请求的请求体是用于携带请求参数的

http响应

img

响应部分

代码语言:javascript
复制
【响应行】
HTTP/1.1 200

【响应头】
Accept-Ranges: bytes
ETag: W/"143-1557909081579"
Last-Modified: Wed, 15 May 2019 08:31:21 GMT
Content-Type: text/html
Content-Length: 143
Date: Sun, 08 Dec 2019 02:20:04 GMT

【响应体】
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    Success
</body>
</html>

1. 响应行

代码语言:javascript
复制
HTTP/1.1 200
  • 协议/版本
  • 响应状态码

img

200:正常,跟服务器连接成功,发送请求成功

302:重定向(跳转)

304:读取缓存,表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求. 读取缓存

403: forbidden 权限不够,服务器接收到了客户端的请求,但是拒绝处理

404:服务器接收到了客户端的请求,但是我服务器里面没有你要找的资源

500:服务器接收到了客户端的请求,也找到了具体的资源处理请求,但是处理的过程中服务器出异常了

2. 响应头

响应头以key:vaue存在, 可能多个value情况. 服务器指示浏览器去干什么,去配置什么.

  • Location: 通常和状态码302一起使用,完成请求重定向
  • Content-Type: text/html; charset=UTF-8; 设置服务器发送的内容的MIME类型,文件下载时候

a.mp3 b.mp4

  • Refresh: 5;url=http://www.baidu.com 指示客户端刷新频率。单位是秒 eg: 告诉浏览器5s之后跳转到百度
  • Content-Disposition: attachment; filename=a.jpg 指示客户端(浏览器)下载文件
  • Content-Length:80 告诉浏览器正文的长度
  • Server:apachetomcat 服务器的类型
  • Content-Encoding: gzip服务器发送的数据采用的编码类型
  • Set-Cookie:SS=Q0=5Lb_nQ;path=/search服务器端发送的Cookie
  • Cache-Control: no-cache (1.1)
  • Pragma: no-cache (1.0) 表示告诉客户端不要使用缓存
  • Connection:close/Keep-Alive
  • Date:Tue, 11 Jul 2000 18:23:51 GMT

3. 响应体

页面展示内容, 和网页右键查看的源码一样

4.小结

代码语言:javascript
复制
1. 响应行:包含响应状态码
       1. 常见的响应状态码:
              1. 200 OK
              2. 302 Redirect 重定向
              3. 304 Cache 读取缓存
              4. 400 BAD REQUEST 请求有问题(可能是请求参数等等不符合规定)
              5. 403 Forbidden 拒绝处理
              6. 404 NOT FOUND 找不到资源
              7. 500 SERVER ERROR 服务器异常
2. 响应头: 由多个键值对构成
3. 响应体:
      1. 可以用于客户端页面的展示
      2. 可以用于下载
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5. http协议简介、http请求以及响应介绍
    • http协议概述
      • 1. 什么是HTTP协议
      • 2. HTTP协议的作用
      • 3.小结
    • http请求
      • 1. 请求行
      • 2. 请求头
      • 3. 请求体
      • 4.小结
    • http响应
      • 1. 响应行
      • 2. 响应头
      • 3. 响应体
      • 4.小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档