プログラマーの主要なチートのためのjavawebのクイックスタート

一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して9日目です。クリックしてイベントの詳細をご覧ください

これは、一般的な管理システム、ショッピングモール、図書館など、プログラマーが企業に参入するときに持つ基本的な実用的な能力であるjavawebに関する特別な記事です。この記事では、MySQLの基本操作、MySQLデータベースの設計とマルチテーブル操作、JDBC、Mavenの基本、HTMLとCSS、JavaScript、HTTPプロトコル、Webサーバー-Tomcat、サーブレット、リクエストとレスポンス、JSPとセッションテクノロジー、フィルターとリスナー、など。

javaweb

javawebは、基本的にjavaとwebの2つの部分に分かれて説明できます。JavaはJava言語を指し、webは外部アクセスに提供できるWebページの意味を意味します。Javawebは、Java開発の必須の基盤です。ナレッジインデックス

  • javawebの紹介
  • アーキテクチャカテゴリの概要
  • ウェブ分類
  • ウェブコミュニケーション

1javawebの概要

Java webこれはB\S、(ブラウザ\サーバー)アーキテクチャに基づくWebアプリケーションの技術的な実装です。

1.1アーキテクチャカテゴリ

1.1.1 C/Sアーキテクチャ

Client / Server,客户端和服务器端,用户需要安装专门客户端程序。(王者荣耀、微信)
复制代码

1.1.2 B/Sアーキテクチャ

Browser / Server,浏览器和服务器端,不需要安装专门客户端程序,浏览器是操作系统内置。淘宝网页版、京东网页版)
复制代码

1.1.3 C/SアーキテクチャとB/Sアーキテクチャの違い

C/S利点は、独自のクライアントがあるため、セキュリティと安定性が高いことです。

 缺点是需要安装专用的客户端软件、需要经常更新,维护,对客户的操作系统一般也会有限制。

就像是你们在打王者荣耀的时候需要下载,更新,不同的系统玩的区都不一样,这个就是不同操作系统的限制
复制代码

B/S利点は、特別なソフトウェアをインストールする必要がないことです。インターネットにアクセスできるパソコンや携帯電話をお持ちであれば、ご利用いただけます。

2ウェブ分類

2.1静的Webサイト

HTML静的ページに基づいています。静的ページは情報リリースの役割を果たすことしかできず、ブラウジングのみを提供でき、データは変更されず、相互作用する機能はありません。

2.2動的Webサイト

動的とは、ユーザーに表示されるWebサイトが移動していることを意味します。つまり、プログラムの変更によってWebサイトにアクセスするユーザーのデータが異なります。Java開発として行う必要があるのは、この種の動的Webサイトです。

3ウェブコミュニケーション

先に述べたように、私たちが見る必要があるのは動くWebサイトですが、どのようにしてWebサイトにアクセスして見つけるのでしょうか。写真を見てみましょう

img

そのプロセスの1つは

1. 浏览器向服务器发送请求

2. Web服务器接受请求

3. 将请求提交给Servlet引擎

4. Servlet引擎调用Service方法

5. 返回响应给客户端(相应的代码)

   Servlet是整个JavaWeb技术的核心,这个我们会在第三章具体去介绍他是一个什么东西,我们知道处理是通过我们的Servlet来处理的,那我们通信是怎么通信的呢,是如何与浏览器进行交流的呢?这个就是通过我们http协议,通过它的请求响应的机制进行交流的请求一次响应一次,先有请求后有响应  	
复制代码

3.1httpプロトコル

3.1.1HTTPプロトコルとは何ですか

超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种协议,所有web都必须遵守的标准; (属于应用层协议)
复制代码

3.1.2HTTPプロトコルの役割

HTTP作用:规范了浏览器和服务器的数据交互

特点:简单快速(浏览器端向服务器请求服务的时候,只需要传送请求的方法和路径。请求的方法有:GET、HEAD、POST,每种方法规定了客户与服务器联系的类型不同,由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。)

灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

无连接:浏览器端知道服务器是谁,服务器不知道浏览器端是谁,服务端只要看到了请求,就响应请求,响应完了就断开连接。这样可以省时间。而且每次只处理一个请求。

无状态:HTTP协议是无状态的协议。无状态是指协议对于事务处理没有记忆能力,缺少记忆状态意味着如果后面要后续处理前面处理过的信息,必须重新处理。
复制代码

ブラウザとサーバーの相互作用プロセス:ブラウザはサーバーに要求を送信し、サーバーは要求応答を処理します。開発者として、私たちはしばしばリクエストとレスポンスを扱います。リクエストとレスポンスのカテゴリは次のとおりです。

请求:请求行,请求头,请求体

响应:响应行,响应头,响应体
复制代码

リクエストとレスポンスについては、以下で詳しく説明します。ゼロベースの学生の場合、リクエストとレスポンスの内容を理解していれば、要件をマスターする必要はありません。

3.2リクエストセクション

私たちのリクエストは、リクエストライン、リクエストヘッダー、リクエスト本文に分かれています

you_14-1639015195812

ブラウザでF12を使用してページを開くと、このようなリクエストを直接確認できます。

画像-20211209102601144

3.2.1リクエストライン

【请求行】
POST /myApp/success.html HTTP/1.1
复制代码

リクエストラインは3つの部分に分かれています

请求方式
GET:明文传输, 不安全,参数跟在请求路径后面,对请求参数大小有限制, 
POST: 暗文传输,安全一些,请求参数在请求体里,对请求参数大小没有限制
URI:统一资源标识符(即:去掉协议和IP地址和端口号部分)
协议版本:HTTP/1.1
复制代码

3.2.1リクエストヘッダー

【请求头】
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 37569-10012
Referer: http://localhost:8080/myApp/login.html
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (MSIE 9.0; qdesk 2.4.1266.203; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 27
Connection: Keep-Alive
Cache-Control: no-cache
复制代码

これらはリクエストヘッダーのパラメータであり、キーと値のペアの形式で存在します。その主な機能は、ブラウザがサーバーに独自の設定を通知することです。

Accept:浏览器可接受的MIME类型 ,告诉服务器客户端能接收什么样类型的文件。
User-Agent:浏览器信息.(浏览器类型, 浏览器的版本....)
Accept-Charset:浏览器通过这个头告诉服务器,它支持哪种字符集
Content-Length:表示请求参数的长度 
Host:初始URL中的主机和端口 
Referrer:从哪里里来的(之前是哪个资源)、防盗链  
Content-Type:内容类型,告诉服务器,浏览器传输数据的MIME类型,文件传输的类型,application/x-www-form-urlencoded . 
Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip 
Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接 )
Cookie:这是最重要的请求头信息之一(会话技术, 后面会有专门的时间来讲的) Date:Date: Mon, 22Aug 2011 01:55:39 GMT请求时间GMT
复制代码

3.2.1リクエスト本文

【请求体】
username=admin&password=123456
复制代码

getリクエストにはリクエスト本文がなく、リクエストメソッドがpostの場合にのみ、リクエスト本文があります。これは、バックエンドに送信するデータです。

3.3応答セクション

私たちの応答は、応答行、応答ヘッダー、応答本文に分かれています

3.3.1応答ライン

HTTP/1.1 200
复制代码

リクエストラインは、プロトコル/バージョンレスポンスステータスコードの2つの部分に分かれています

200:正常,成功
302:重定向
304:表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求. 读取缓存  
403:请求被禁止,常发生于跨域请求(没有权限去请求进入某个服务器)
404:客户端错误(一般是路径写错了,没有这个资源)  **请求路径不存在,请求地址写错了
406:请求与响应不一致  请求和响应是的content-Type设置不一样
500:服务器内部错误(程序运行出错了  java代码运行报错)
复制代码

3.3.2応答ヘッダー

応答ヘッダーkey:vaueが存在し、複数のvalue状況が発生する可能性があります。サーバーは、ブラウザーに何を実行し、何を構成するかを指示します。

【响应头】
Accept-Ranges: bytes
ETag: W/"143-1557909081579"
Last-Modified: Wed, 15 May 2019 08:31:21 GMT
Content-Type: text/html
Content-Length: 143
Date: Sun, 08 Dec 2021 02:20:04 GMT
复制代码

以下に、一般的な応答ヘッダーを示します

- Content-Type: text/html; charset=UTF-8; 设置服务器发送的内容的MIME类型,文件下载时候
- Refresh: 5;url=http://www.baidu.com 指示客户端刷新频率。单位是秒  eg: 告诉浏览器5s之后跳转到百度
- Content-Disposition: attachment; filename=a.jpg  指示客户端(浏览器)下载文件 
- Content-Length:80 告诉浏览器正文的长度
- Server:apachetomcat 服务器的类型
- Content-Encoding: gzip服务器发送的数据采用的压缩类型
- Set-Cookie:SS=Q0=5Lb_nQ;path=/search服务器端发送的Cookie
- Cache-Control: no-cache (1.1)  
- Pragma: no-cache  (1.0)  表示告诉客户端不要使用缓存
- Connection:close/Keep-Alive   
- Date:Tue, 11 Jul 2000 18:23:51 GMT
复制代码

3.3.3応答本体

応答本文はページに表示されるコンテンツであり、ページのソースコードであるF12を押してブラウザから表示することもできます。

【响应体】
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    Success
</body>
</html>
复制代码

おすすめ

転載: juejin.im/post/7085261470501437477