aoe1231

看得完吗

JavaWeb基础学习笔记11——HTTP协议

目录

1、HTTP概念

2、请求消息数据格式

2.1、请求行

2.2、请求头

2.3、请求空行

2.4、请求体(正文)

3、响应消息数据格式

3.1、响应行

3.2、响应头

3.3、响应空行

3.4、响应体


1、HTTP概念

HTTP(Hyper Text Transfer Protocol, 超文本传输协议)。

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

特点:

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

历史版本:

  • 1.0:每一次请求响应都会建立新的连接。
  • 1.1:复用连接。

HTTP协议:

  • 请求消息:客户端发送给服务器端的数据。
    请求消息数据格式:
        1、请求行
        2、请求头
        3、请求空行
        4、请求体
  • 响应消息:服务器端发送给客户端的数据。
    响应消息数据格式:
        1、响应行
        2、响应头
        3、响应空行
        4、响应体

2、请求消息数据格式

2.1、请求行

-请求行格式:
请求方式 请求url 请求协议/版本
Get /login.html HTTP/1.1

-请求方式,HTTP协议有7种请求方式,常用的有2种
GET:
    1、请求参数在请求行中(在url后)。
    2、请求的url长度有限制。
    3、不太安全。
POST:
    1、请求参数在请求体中。
    2、请求的url长度没有限制。
    3、相对安全。

2.2、请求头

请求头:客户端浏览器告诉服务器一些信息。

-请求头格式:
请求头名称:请求头值
常见的请求头:
User-Agent:浏览器告诉服务器,它访问服务器使用的浏览器版本信息。
    可以在服务器端获取该头的信息,解决浏览器的兼容性问题。
Accept:可以接收和解析什么样的响应信息格式。
Accept-Language:可以接收的语言环境
Referer:告诉服务器,我(当前请求)从哪里来。
    作用:① 防盗链; ② 统计工作。

Host: localhost
Connection: keep-alive
Cache-Control: max-age=0
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="98", "Microsoft Edge";v="98"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1

2.3、请求空行

空行,就是用于分割POST请求的请求头和请求体的。

-格式:空行

2.4、请求体(正文)

封装POST请求消息的请求参数的。

3、响应消息数据格式

响应字符串格式:
HTTP/1.1 200 OK
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Mon, 21 Feb 2022 12:42:27 GMT
Expires: Mon, 21 Feb 2022 12:42:27 GMT
Server: BWS/1.0
Vary: Accept-Encoding
Content-Length: 78

<!DOCTYPE html><!--STATUS OK-->

    <html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-
8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta 
content="always" name="referrer"><meta name="theme-color" 
content="#ffffff"><meta name="description" content="全球领先的中文搜索引擎、致力于
让网民更便捷地获取信息,找到所求。百度超过千亿的中文网页数据库,可以瞬间找到相关的搜索结
果。"><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /><link 
rel="search" type="application/opensearchdescription+xml" href="/content-
search.xml" title="百度搜索" /><link rel="icon" sizes="any" mask 
href="//www.baidu.com/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg"><link 
rel="dns-prefetch" ...

3.1、响应行

1、响应行的组成:
    协议/版本 响应状态码 状态码描述
    HTTP/1.1 200 OK

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

3.2、响应头

1、响应头格式:
    头名称 : 值
    Cache-Control: private
    Connection: keep-alive
    Content-Encoding: gzip
    Content-Type: text/html;charset=utf-8
    Date: Mon, 21 Feb 2022 12:42:27 GMT
    Expires: Mon, 21 Feb 2022 12:42:27 GMT
    Server: BWS/1.0
    Vary: Accept-Encoding
    Content-Length: 78
2、常见的响应头
    Content-Type:服务器告诉客户端本次响应体的数据格式以及编码格式。
    Content-Length:响应体的字节个数。
    Date:日期。
    Content-disposition:服务器告诉客户端以什么格式打开响应体数据。
        值:
            in-line:默认值,在当前页面内打开。
            attachment;filename=xxx:以附件形式打开响应体。文件下载

3.3、响应空行

3.4、响应体

1、响应体格式:
    即真实传输的数据。

posted on 2022-09-18 15:48  啊噢1231  阅读(33)  评论(0编辑  收藏  举报

导航

回到顶部