码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【JavaWeb】之Http协议


    【JavaWeb】Http协议

    • 前言
    • 一、什么是HTTP
    • 二、Http请求
      • 1.请求行
      • 2.请求头部
      • 3.请求体
    • 三、Http响应
      • 1.响应状态码
      • 2.响应头
      • 3.响应体
    • 后记


    前言

    本文为JavaWeb之Http协议相关知识介绍,Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~

    一、什么是HTTP

    HTTP(超文本传输协议)是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

    • 文本:html,字符串,~ ….
    • 超文本:图片,音乐,视频,定位,地图…….
    • 端口:80

    HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

    • 端口:443

    二、Http请求

    客户端——>发请求——>服务器
    HTTP请求的完整地址:https://blog.csdn.net/qq_42146402/article/details/127346459

    一个HTTP请求报文由3个部分组成:

    • 请求行(request line)
    • 请求头部(headers)
    • 请求体(request body)

    1.请求行

    以访问百度为例:
    在这里插入图片描述

    Request URL:请求地址
    Request Method:请求方式,一般是GET/POST
    Status Code:状态码:200表示成功,404表示没有找到资源,500表示服务器错误....
    Remote Address:远程地址
    
    • 1
    • 2
    • 3
    • 4
    • 请求行中的请求方式:GET
    • 请求方式:GET,POST,HEAD,DELETE,PUT,TRACT…
      GET:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但是高效
      POST:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但是不高效

    2.请求头部

    Accept:告诉浏览器,它所支持的数据类型
    Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
    Accept-Language:告诉浏览器,它的语言环境
    Cache-Control:缓存控制
    Connection:告诉浏览器,请求完成是断开还是保持连接
    HOST:主机
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.请求体

    请求体是将一个页面表单中的组件值通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1¶m2=value2”的方式传递请求参数。

    三、Http响应

    服务器——>响应——>客户端

    HTTP响应报文也由三部分组成:

    • 响应状态码
    • 响应头
    • 响应体

    1.响应状态码

    • 200:请求响应成功
    • 3xx:请求重定向
    • 4xx:找不到资源 404资源不存在
    • 5xx:服务器代码错误

    2.响应头

    HTTP响应中的常用响应头(消息头):

    Accept:告诉浏览器,它所支持的数据类型
    Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
    Accept-Language:告诉浏览器,它的语言环境
    Cache-Control:缓存控制
    Content-Type:text/html 类型
    Content-Encoding:gzip 编码
    Refresh:告诉客户端,多久刷新一次;
    Connection:告诉浏览器,请求完成是断开还是保持连接
    HOST:主机..../.
    Location:让网页重新定位;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.响应体

    • 是服务器返回给客户端的文本信息。

    后记

    Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~

  • 相关阅读:
    刷题记录(NC202589 魔法数字,NC235247 Sramoc问题)
    Golang Gorm 创建HOOK
    “入职 半 年,那个高薪挖来的自动化测试工程师被劝退了。”
    发布订阅(观察者)模式之Spring源码ApplicationListener解析
    Java 8 新特性 Stream 的使用场景(不定期更新)
    orangepi 香橙派-实时时钟模块使用DS1307/DS3231/PCF8563
    VB.net进行CAD二次开发(四)
    基于JavaWeb的家庭食谱管理系统设计与实现
    二分查找总结
    【客观赋权法1】熵权法(MATLAB全代码)
  • 原文地址:https://blog.csdn.net/qq_42146402/article/details/127346459
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号