iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JavaHttp的基础概念了解
  • 562
分享到

JavaHttp的基础概念了解

javaHttpHttp基础概念 2023-05-17 20:05:15 562人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录基本概念了解网络的分层Http协议HTTP和tcp的关系总结学完了计算机网络课程以后,确实学到了一些网络的概念,初步拥有了对网络的一些认识。这些概念虽然可以用来解释平时网络上遇到

学完了计算机网络课程以后,确实学到了一些网络的概念,初步拥有了对网络的一些认识。这些概念虽然可以用来解释平时网络上遇到的一些问题,但是真正把网络的知识运用在平时编程当中,机会还是比较少的。所以,对网络的一些概念大多还是来自于书本,在平时学习的过程中,没有自己亲自体会到这些概念的用处,无法学以致用。

有一次我看到了一个Java手写Http 服务器的代码,感觉眼前一亮,很是有趣。这个程序是通过TCP编程来构建一个简单的Http服务器。正好也对应了计算机网络分层的概念,Http协议是建立在TCP协议之上的,所以可以使用TCP编程来构建Http服务器。因此我准备来写一个系列博客记录一下自己的学习过程。这一些列会包括一些概念的介绍,然后是逐步编码实现一个Http服务器的小demo。

基本概念了解

网络的分层

注:关于概念的东西,这里不会介绍太多,毕竟还是书本上的知识更加全面一些,这里主要就是介绍一些概念。

计算机网络被划分为具有层次的结构,按照目前使用的TCP/IP 4层协议。TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。 我们学习的时候,是划分成了五层协议来学习的,从底层到高层分别是:物理层->数据链路层->网络层->传输层->应用层

这里只要知道:HTTP协议是建立在TCP协议之上的(或者应用层是建立在传输层之上的)。

感兴趣的可以去了解一下 TCP/IP 和 OSI 的关系,并且为何是TCP/IP成为了主流?

网络的层次

HTTP协议

HTTP(HyperText Transfer Protocol),中文是超文本传输协议。它是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地计算机的传送协议。HTTP基于TCP/IP通信协议来传递数据。 HTTP基于客户端/服务端(C/S)架构模型,是一个无状态的请求/响应协议。 我们每天都会使用它,无论是浏览网页、看视频(基于Http协议的视频流)或者是下载文件(这里指使用Http协议下载),都是Http协议在起作用,可见它的无处不在。

但是,作为一个计算机专业的学生,光知道这些还是不够的,我们需要了解具体的协议。上面说了,HTTP是一个请求、响应协议,这里就是说,用户发送一个请求,会得到一个响应。请求和响应都会对应一个协议报文,分别称之为请求报文和响应报文,通常我们说HTTP报文就是指这二者。

HTTP报文分为报文头和报文体。 报文头部是一些必要的控制信息和对报文体数据的说明信息。通过这些信息,浏览器(通常是浏览器)就可以处理各种信息了,无论是文字、视频还是图片都是通过报文在网络上面进行传输。

请求报文和响应报文

在这里插入图片描述

这里主要是需要知道报文的结构特点,因为后面需要解析简单的HTTP报文(更详细的报文知识,可以阅读书籍或者参考其他人的博客。或者你也可以直接阅读后面的博客,遇到问题再去看,这样效果会更好!) 报文头部每一行需要一个回车换行符:CRLF CR: \r LF: \n 报文头和报文体之间使用一个单独的CRLF分开。 注意:GET请求没有报文体。

//请求报文
GET /test/hi-there.txt HTTP/1.1\r\n
Accept: text/plain\r\n
Host: www.joes-hardwar.com\r\n
//请求报文
HTTP/1.0 200 OK\r\n
Content-Type: text/plain\r\n
Content-Length: 19\r\n
\r\n
Hi! I'm a message!

HTTP和TCP的关系

HTTP协议是建立在TCP协议之上的,上面我们所看到的请求和响应报文,对于TCP来说就是一串网络字节流。 我们后面的代码会加深你对于这句话的理解了。这里使用Java语言来进行编程,在Java中使用TCP编程,主要就是使用Java提供的Socket 套接字,也就是 Socket 和 ServerSocket 两个类。

总结

这里主要就是简略介绍一下需要的概念知识和需要具备的编程能力。

1.了解网络分层的概念,知道HTTP和TCP的关系。

2.了解HTTP报文的结构特点。

3.具备Socket和ServerSocket编程的能力。

到此这篇关于Java Http的基础概念了解的文章就介绍到这了,更多相关Http基础概念内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaHttp的基础概念了解

本文链接: https://www.lsjlt.com/news/211504.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaHttp的基础概念了解
    目录基本概念了解网络的分层HTTP协议HTTP和TCP的关系总结学完了计算机网络课程以后,确实学到了一些网络的概念,初步拥有了对网络的一些认识。这些概念虽然可以用来解释平时网络上遇到...
    99+
    2023-05-17
    java Http Http基础概念
  • 缓存的基础概念解读
    高速缓存(Cache,简称缓存),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。Cache是位于CPU和DRAM之间,通常由SRAM构成的规模小存...
    99+
    2023-06-04
  • 网络的基础:深入了解 HTML 的核心概念
    ...
    99+
    2024-04-02
  • Golang函数基础概念详解
    随着现代编程语言的快速发展,Golang已经成为越来越多人的首选语言。而作为Golang语言中的基础概念之一的函数,更是为程序员们提供了强大的工具支持。本文将会详细解释Golang函数的定义、参数、返回值、作用域等基本概念,以及一些高级应用...
    99+
    2023-05-17
    函数 Golang 基础概念
  • Python语法概念基础详解
    目录Python之禅:Python基础:1.进制转换:2.数据类型:3.单双引号转义字符的使用:4.单双三引号的转义换行:5.字符串的运算:6.组的概念与含义:7.集合:8.系统关键...
    99+
    2024-04-02
  • Go语言基础概念解析
    go 语言是一门高性能、并发编程语言,其基础概念包括:基本类型(整数、浮点数、布尔值、字符串、字符);通过 var 关键字声明变量,并支持类型推断;使用 const 关键字声明常量;提供...
    99+
    2024-04-08
    go语言 基础概念
  • LINQ基础概念怎么理解
    本篇内容介绍了“LINQ基础概念怎么理解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!要想更好地了解LINQ,首先需要了解LINQ基础概念。...
    99+
    2023-06-17
  • python链表的基础概念和基础用法详解
    本文为大家分享了python链表的基础概念和基础用法,供大家参考,具体内容如下 一、什么是链表 链表是由多个不同的节点组成,每个节点通过指针区域关联到一起链表的头指针,指向了头节点,...
    99+
    2024-04-02
  • 网络基础入门(网络基础概念详解)
      本篇文章主要是对网络初学的概念进行解释,可以让你对网络有一个大概整体的认知。 文章目录 一、简单认识网络 1、1 什么是网络 1、2 网络分类  二、网络模型 2、1OSI七层模型 2、1、1 简单认识协议 2...
    99+
    2023-10-03
    网络
  • C++基础概念讲述
    目录1.C++相关网站推荐2.C++和C的关系3.C++特性说明3.1与底层硬件紧密结合3.2对象生命周期的精确控制3.3Zero-Overhead Abstraction首先,通过...
    99+
    2024-04-02
  • 一文详解cornerstone Tools 基础概念
    目录cornerstone Tools 基础概念工具类型Base ToolBaseAnnotationTool工具模式事件全局配置项cornerstone Tools 基础概念 C...
    99+
    2023-03-09
    cornerstone Tools基础概念 cornerstone Tools
  • python3 类、对象的基础概念
    类:具有相同特性和方法的抽象概念称为类 对象:从类中具体描述的一个事物称为对象 类和对象的关系:类是对象的抽象概念,对象是类的具体实例 class test001: ...
    99+
    2023-01-30
    对象 概念 基础
  • Java多线程——基础概念
    目录java多线程并发与并行:多线程使用场景:创建线程的方式:Thread类的有关方法:线程的同步:       ...
    99+
    2024-04-02
  • C++基础概念是什么
    这篇文章主要讲解了“C++基础概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++基础概念是什么”吧!首先,通过一张最新(2021.11)的编程语言排名图来了解常见的编程语言:从图...
    99+
    2023-06-22
  • Java线程安全基础概念解析
    Java线程安全初步了解。JAVA线程安全从总体上来说,是指Java对象在多线程运行环境下的一种特性,表现为常规(区别于特殊调用情况)情况下每次调用都能得到正确的逻辑结果。从本质上来说,将对象的方法行为加上了同步控制逻辑,而调用者无须做其他...
    99+
    2023-05-31
    java 线程安全 ava
  • 云服务器基础概念
    云服务器(Cloud Storage,Cloud Docker)是一种基于云计算的服务器,通常与云存储(Cloud Repository,Cloud Directory,Cloud File Services)一起使用。Cloud Dock...
    99+
    2023-10-26
    概念 服务器 基础
  • 了解 PHP Session 跨域的基本概念
    在开发 web 应用程序时,我们经常会遇到处理用户会话(session)的需求。PHP 提供了 Session 功能来跟踪用户在不同页面间的状态。然而,当 web 应用程序涉及到跨域访问时,Session 的管理会变得稍微复杂一些。本文将介...
    99+
    2023-10-21
    PHP session 跨域
  • C++ void的基础概念是什么
    本篇文章为大家展示了C++ void的基础概念是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++编程语言中的很多概念都值得我们去不断的学习,不断的从中积累经验以帮助我们在程序编写时获得更大的...
    99+
    2023-06-17
  • Spring基础之AOP的概念介绍
    目录前言Spring的AOP的功能和目标代理方式@AspectJ的支持启用@AspectJ通过Java注解启用AspectJ注解支持:通过XML配置启用AspectJ注解定义一个切面...
    99+
    2024-04-02
  • python基础概念学习笔记
    本次整理python数据类型为:列表list字典dict元组tuple集合set其中涉及概念:模组module类class对象object——————————————————————————————————————————数据类型type ...
    99+
    2023-01-31
    学习笔记 概念 基础
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作