首页 > 编程语言 >狂神说Java Web学习笔记_HTTP

狂神说Java Web学习笔记_HTTP

时间:2024-04-07 23:02:12浏览次数:37  
标签:Web HTTP 请求 Accept Java 服务器 浏览器 客户端

HTTP详解

HTTP

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。

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

HTTPS

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。

  • 默认端口:443

两个时代

  • http1.0
    • HTTP/1.0:客户端与web服务器连接后,只能获得一个web资源。
  • http2.0
    • HTTP/1.1:客户端与web服务器连接后,可以获得多个web资源。

Http请求

客户端------发请求(Request)-----服务器

HTTP 请求报文由 3 大部分组成:
请求行(必须在 HTTP 请求报文的第一行)
请求头(从第二行开始,到第一个空行结束。请求头和请求体之间存在一个空行)
请求体(通常以键值对 {key:value}方式传递数据)

General

Request URL: https://www.baidu.com/   请求地址
Request Method: GET                   请求方式,一般是GET/POST
Status Code: 200 OK                   状态码:200表示成功,404表示没有找到资源,500表示服务器错误
Remote Address: 36.152.44.96:443      远程地址
Referrer Policy: strict-origin-when-cross-origin
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8
Cache-Control: private
Connection: keep-alive

请求行(request line)

  • 请求方式:GET, POST, HEAD, DELETE, PUT, TRACT
    • GET: 请求能都携带的参数比较少,大小没有限制,会在浏览器的URL地址栏显示数据内容,不安全,但是高效。
    • POST:请求能够携带的参数没有限制,大小没有限制,不会在浏览器URL地址栏中显示数据内容,安全,但不高效。

消息头

Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持哪种编码格式  GBK UTF-8
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接

Http响应

服务器-----响应-----客户端

Response Headers

Cache-Control: private      缓存控制
Connection: keep-alive      连接
Content-Encoding: gzip      编码
Content-Type: text/html;charset=utf-8

HTTP请求的完全过程:https://blog.csdn.net/ailunlee/article/details/90600174

响应体

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

响应状态码

200:请求响应成功

3xx:请求重定向

  • 重定向:你重新到我给你的位置去。

4xx:找不到资源

  • 404

5xx:服务器代码错误

  • 500
  • 502 网关错误

标签:Web,HTTP,请求,Accept,Java,服务器,浏览器,客户端
From: https://www.cnblogs.com/growingbambi/p/18120110

相关文章

  • 狂神说Java Web学习笔记_Maven
    Maven项目架构管理工具我们目前用它就是为了方便导入jar包,可以帮你自动导入一个jar包所依赖的其他jar包。Maven的核心思想:约定大于配置配置环境变量配置阿里云加速镜像maven安装目录的conf/settings.xml在<mirrors></mirrors>标签中添加mirror子节点<mirrors......
  • 狂神说Java Web学习笔记_Java Web基本概念
    JavaWeb基本概念静态Web动态WebWeb服务器技术讲解ASPPHPJSP/ServletB/SC/SWeb服务器TomcatTomcat实际运行JSP页面和ServletIISTomcat详解Tomcat目录结构分析配置server.xml是服务器核心配置文件,在这里可以设置端口号、设置域名或IP、默认加载的项目、请求编......
  • day21java学习打卡:匿名对象的使用
    /* *一.理解“万事万物皆对象” *1.在java语言范畴中,我们的都将功能,结构封装到类中,通过类的实例化, *来调节具体的功能结构 *  >Scanner,String *  >文件:File *  >网络资源:URL *2.涉及到Java语言与前端HTML,后端的数据库交互时,前后端的结构在ja......
  • Java学习Day2——关于类的概述
    一、昨天的实践:术语随机生成器//术语生成器publicclassPhraseOMatic{ publicstaticvoidmain(String[]args) { //创建三个词库 String[]wordListOne={"24/7","multi-Tier","30,000foot","B-to-B","win-win", "fron......
  • java方法重载
    packagechapter07;abstractclassAnimal{abstractvoideating()}classDogextendsAnimal{@Overridevoideating(){System.out.println("狗吃骨头!");}}classPandaextendsAnimal{@Overridevoideating(){......
  • Java多线程
    Process进程系统资源分配的单位Thread线程CPU调度和执行的单位1.继承Thread类packagedemo01;//创建线程方式一:继承Thread类,重写run()方法,调用start开启线程//线程开启不一定立即执行,由cpu调度publicclassTestThread1extendsThread{@Overridep......
  • 使用JavaScript设置Tab栏自动切换
    在下面代码中设置了tab栏可以进行周期性的切换时间时5秒,也可以鼠标移到相应的位置进行切换。在允许过程中出现:Cannotreadpropertiesofundefined(reading'className')报错,不知道时什么原因还没有解决,希望大佬来指点一下!!!!<!DOCTYPEhtml><htmllang="en"><head><meta......
  • WPF WebClient EAP async await
    <Windowx:Class="WpfApp40.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • 【Frida】【Android】 07_爬虫之网络通信库HttpURLConnection
    ......
  • Java并发(二十四)----wait、notify、notifyAll、join区别与联系
    1、join是调用者轮询检查线程alive状态,执行后线程进入阻塞状态。如在线程B中调用线程A的join(),那线程B会进入到阻塞队列,直到join结束或中断线程B才开始进入阻塞队列。可以实现一个线程的顺序执行。t1.join();等价于下面的代码synchronized(t1){  //调用者线程进入t1......