JavaWeb-13-03-Http协议

1 Http协议概念

  • 1、概念:

    • Hyper Text Transfer Protocol ,超文本传输协议
  • 2、传输协议:

    • 定义了客户端和服务端通信时,发送数据的格式
  • 3、特点:

    • 基于TCP/IP的高级协议
    • 默认端口:80
    • 基于请求/响应模型的,一次请求对应一次响应
  • 4、Http协议是无状态协议:

    • 每次请求之间互相独立,请求之间不能交互数据
  • 5、 历史版本:

    • 1.0 版本:一次请求响应都会建立新的连接
    • 1.1 版本:重复使用连接

2 request—请求消息数据格式(demo04)

2.0 案例

  • 1、访问路径:http://localhost:8081/login.html

JavaWeb-13-03-Http协议_第1张图片

  • 2、提交数据进行跳转

请求行 / 请求头
JavaWeb-13-03-Http协议_第2张图片

请求体(请求正文)
JavaWeb-13-03-Http协议_第3张图片

2.1 请求行

请求方式   请求URL   请求协议/版本
POST      /demo04   HTTP/1.1

在这里插入图片描述

2.2 请求头

请求头名称:请求头值 (键值对)

JavaWeb-13-03-Http协议_第4张图片

2.3 请求空行

空行:用来等额POST请求的请求头和请求体的

2.4 请求体(请求正文)

(只有post请求有,用来封装POST请求消息的请求参数的)

在这里插入图片描述

2.5 请求行 请求头 请求空行 请求体的字符串格式

POST /demo04 HTTP/1.1    请求行
Host: localhost:8081
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;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
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
Origin: http://localhost:8081
Connection: keep-alive
Referer: http://localhost:8081/login.html
Cookie: Webstorm-cea968cd=15dbfddb-bcc8-47cf-b809-a141f7d6475b; Idea-b0676662=b5c99ad3-c0e4-43e9-bb14-8751da57f43a; JSESSIONID=EB8E97991EDFC3DF5AF4159D4F422596
Upgrade-Insecure-Requests: 1
   请求头
请求空行----------------------------------------------------------
username=Tom&passwprd=123   请求体

2.6 Http请求方式(7种)

Http请求方式共有七种,其中常用的两种:GET和POST请求
GET和POST请求的区别:
GET请求:
    请求参数在请求行中,在url后用?拼接
    请求的url长度有限制
    不逃安全
POST请求:
    请求参数在请求体中
    请求的url长度没有限制
    相对安全

2.7 请求头的内容介绍

请求头相当于浏览器高数服务器浏览器的信息

1、请求主机
   Host: localhost:8081

2、浏览器告诉服务器,浏览器的版本
   User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0

3、告诉服务器,浏览器自身可以接收什么类型的响应数据
   Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

4、浏览器可以支持的语言环境
   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

5、浏览器可以接受的压缩格式
   Accept-Encoding: gzip, deflate

6、浏览器告诉服务器,请求体的类型
   Content-Type: application/x-www-form-urlencoded

7、请求体的字节数
   Content-Length: 25

8、用来说明请求从哪里发起的,且仅仅包括协议和域名
   Origin: http://localhost:8081

9、HTTP协议连接是存活的,可以被复用
   Connection: keep-alive

10、告诉服务器,当前请求从哪里来(防盗链,统计工作)
   Referer: http://localhost:8081/login.html

11、当前页面设置的任何Cookie
   Cookie: Webstorm-cea968cd=15dbfddb-bcc8-47cf-b809-a141f7d6475b; Idea-b0676662=b5c99ad3-c0e4-43e9-
   bb14-8751da57f43a; JSESSIONID=EB8E97991EDFC3DF5AF4159D4F422596

12、升级
    Upgrade-Insecure-Requests: 1

3 response—响应消息数据格式

3.1 概述

3.2 数据格式

数据格式:
         1、响应行
               1、组成协议/版本 响应状态码 响应状态描述
                     HTTP/1.1     200       OK
               2、响应状态码:
                  服务器告诉浏览器本次请求和响应的一个状态
                  1xx:服务器接收客户端消息,但是没有接收完成,等待一段时间后,服务器给客户端发送1XX码
                  2xx:成功代表200
                  3xx:代表重新定向:302 重定向 304访问缓存
                  4xx:客户端错误 404请求路径错误 405请求方式不正确
                  5xx:服务端错误 500:服务端内部出现异常
         2、响应头
               1、格式:响应头名称:值
               2、常见的响应头:
                   Content-Type: text/html;charset=UTF-8
                   服务器告诉客户端本次响应体数据格式以及编码格式
                   Content-disposition: in-line 或者 attachment;filename=xxx
                   服务器告诉客户端以什么格式打开响应体数据
                   in-line:默认值,在当前页面打开
                   attachment;filename=xxx:以附件的形式打开响应体数据,不如下载
         3、响应空行
               就是响应头和响应体之间的空白行,只是起到分隔的作用
         4、响应体
               包括字符串,图片等信息

3.3 字符串格式

字符串格式:

HTTP/1.1 200                              响应行
Content-Type: text/html;charset=UTF-8
Content-Length: 102
Date: Sat, 13 Feb 2021 10:11:14 GMT
Keep-Alive: timeout=20
Connection: keep-alive                      响应头

                                         响应空行
< html >
< head >
< title > T i t l e Title Title< /title >
< /head >
< body >
hello response…
< /body >
< /html >
                                  响应体

3.4 图形效果

响应行 响应头

JavaWeb-13-03-Http协议_第5张图片

响应体

JavaWeb-13-03-Http协议_第6张图片

你可能感兴趣的:(JavaWeb)