Java培优班 - 第二十八天 - Part2:HTTP协议概述
发布日期:2021-06-30 16:59:31 浏览次数:2 分类:技术文章

本文共 2089 字,大约阅读时间需要 6 分钟。


文章目录


6.7 HTTP协议概述

6.7.1 什么是HTTP协议?

在这里插入图片描述

HTTP是用于规定浏览器和服务器通信的方式

规定两方面内容:

  • 浏览器向服务器发送的请求信息的格式
  • 服务器向浏览器做出的响应信息的格式

HTTP工作时遵循的基本原则

  • 一次请求对应一次响应
  • 请求只能由浏览器发起,服务器只能被动的等待请求,根据请求作出回应

文章目录


6.8 HTTP协议详解

6.8.1 HTTP - 请求

在这里插入图片描述

1、请求行 - GET .... HTTP/1.1

GET /news/hello.html HTTP/1.1

  • GET

    提交方式,在HTTP协议中一共规定了7种提交方式,其中5种都不常用,只用GET和POST。

  • /news/hello.html

    请求的资源路径,用于通知服务器浏览器访问的是服务器中哪个Web应用以及应用下的哪一个资源文件。

  • HTTP/1.1

    请求所遵循的协议和版本

2、若干请求头/若干请求报头

请求头 - 浏览器发送给服务器,为了让服务器更好解析请求,比处理请求。

请求头都是Key-Value结构,

例如:

  • Host : localhost – 表示浏览器请求的是服务器中的哪一台虚拟主机
  • Cookie : xxx=xxx; ( 重 点 \color{#f01}{重点} ) – cookie技术中的一个头(后面讲)
  • xxx : xxx

3、请求实体内容

  • 如果请求方式是GET提交,请求实体不会有内容。
  • 如果请求方式是POST提交,并且请求中携带了数据,请求实体才会有内容

6.8.2 HTTP - 响应

在这里插入图片描述

1、状态行

HTTP/1.1 200 OK

  • HTTP/1.1表示响应信息所遵循的协议和版本
  • 200:是一个三位是数字,叫做状态码,表示请求处理的结果。

常见的状态码有:

  • 200:表示服务器处理请求的结果是成功的!
  • 304/307:表示服务器通知浏览器使用缓存
  • 400:表示请求参数类型不匹配
  • 404:表示客户端请求的资源不存在
  • 500:表示服务器端在处理请求的过程中出现了错误或异常
  • OK描述短语,也表示请求处理的结果

常见描述语

  • 200 OK
  • 404 NOT FOUND
  • 500 Internal Server Error

2、若干响应头

响应头的格式也是Key-Value结构:

  • Content-Type: text/html – 通知浏览器,服务器响应的数据类型是什么
    • text/html – 表示服务器响应是一个html格式的网页,如果响应是一个网页,还可以在值的后面加上一个编码,例如: text/html;charset=utf-8
    • text/css – 表示服务器响应是一个css文件
    • image/gif – 表示服务器响应的是一个gif格式的图片
    • ...
  • Content-Length: 服务器响应的数据长度,单位是字节
  • Set-Cookie: Cookie技术中的一个头(后面讲解)
  • Refuresh: 5 ; url=http://www.baidu.com/index.html : 自动转跳…(如:下载时)
  • ...

3、响应实体内容

如果浏览器向服务器请求的是一个文件,服务器会将这个文件的内容作为响应实体发送给浏览器。

比如:

浏览器请求是 hello.html文件,
服务器就会将hello.html文件的内容作为响应实体发送给浏览器
localhost/news/hello.html,

HTTP总结:

  • HTTP: 用于规定浏览器和服务器之间通信的方式
  • 请求信息中包含哪几部分内容:
    • 请求行、
    • 请求报头、
    • 请求实体
  • 响应信息中包含哪几部分内容:
    • 状态行、
    • 响应报头、
    • 响应实体
  • 请求行中包含什么内容:
    • 请求方式、
    • 请求资源路径、
    • 协议和版本
  • 状态行中包含什么内容:
    • 协议和版本、
    • 状态码、
    • 描述短语

6.8.3 内容补充

问题1:请求方式什么时候是GET提交?什么时候是POST提交?

只有使用表单(<form>),并且再表单上明确的通过 method 指定提交方式为 POST 时,才是 POST 提交。

其他方式都是 GET 提交(AJAX除外)


例子

判断以下请求方式是GET还是POST?

(1)
-- GET提交(2)
-- GET提交(3)
-- POST提交(4)点击超链接访问服务器,例如: -- GET提交百度一下(5)直接在浏览器的地址栏中书写URL地址访问服务器 -- GET提交

问题2:GET提交和POST提交有什么区别?

GET提交:

  • 会将请求参数拼接在URL地址的后面显示在地址栏中相对不安全
  • 将参数显示在地址栏中,数据量不能太大,不能超过1K或者是4K

POST 提交:

  • 不会将参数拼接在地址栏后面, 而是通过请求实体将参数发送给服务器, 相对来说更加安全!
  • 通过请求实体传数据给服务器, 数据量理论上没有限制!

当向服务器传输大量的数据或者传输的数据较为隐私,才会使用POST提交

更多情况下,还是使用GET提交!!

转载地址:https://lawsssscat.blog.csdn.net/article/details/103494277 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:spring - context:component-scan - 【未完】
下一篇:spring - 使用外部属性文件 - 【案例】

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月23日 22时54分09秒