рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЬрд╛рд╡рд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрдХрд░ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рдкрд░рд┐рдЪрдп

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рдЕрддрд┐рд╢реНрдпреЛрдХреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА рдХрд┐ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рд░ рдХрд╛ рдЬреНрдЮрд╛рди рдФрд░ рд╕рдордЭ рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдордЭ рддреБрд░рдВрдд рдирд╣реАрдВ рдЖрддреА рд╣реИред рдореБрдЭреЗ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд╢рд░реНрдо рдЖ рд░рд╣реА рд╣реИ рдХрд┐ рдРрд╕реЗ рд╕рдордп рдереЗ рдЬрдм GET рдФрд░ POST рд╢рдмреНрдж рдореЗрд░реЗ рд▓рд┐рдП рдЬрд╛рджреВ рдХреЗ рдордВрддреНрд░ рдХреЗ рд╕рдорд╛рди рдереЗ, рдФрд░ рдореБрдЭреЗ PUT, PATCH рдФрд░ DELETE рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдкрд░ рднреА рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рдерд╛ред

рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдЦреБрдж рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рднреА рдкрдврд╝рд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдХрдИ рджрд┐рдиреЛрдВ рдХреЗ рдЙрдкрджреНрд░рд╡ рдФрд░ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛, рдХреНрдпреЛрдВ рди рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ HTTP рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рд░ рдХреЛ рдЗрддрдиреА рд╕рд░рд▓рддрд╛ рд╕реЗ рд╕рдордЭрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдиреАрдЪреЗ рдПрдХ рдХреЛрдб рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛! рд╣рдо рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ рдПрдХ ServerSocket рдФрд░ рдХреБрдЫ рдорд╛рдирдХ I / O рд╣реИред

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.nio.charset.StandardCharsets; public class HttpServer { public static void main(String[] args) { try (ServerSocket serverSocket = new ServerSocket(8080)) { System.out.println("Server started!"); while (true) { //   Socket socket = serverSocket.accept(); System.out.println("Client connected!"); //      //    try (BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8)); PrintWriter output = new PrintWriter(socket.getOutputStream())) { //     while (!input.ready()) ; //         System.out.println(); while (input.ready()) { System.out.println(input.readLine()); } //   output.println("HTTP/1.1 200 OK"); output.println("Content-Type: text/html; charset=utf-8"); output.println(); output.println("<p> !</p>"); output.flush(); //     try-with-resources , //         System.out.println("Client disconnected!"); } } } catch (IOException ex) { ex.printStackTrace(); } } } 

рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬрд┐рд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░рд╕реЗрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рдореБрдХреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рд╡реНрдпрд╕реНрдд рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдЗрд╕реЗ рдЬрд╛рд░реА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореБрдХреНрдд рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд░ рд╡рд┐рдВрдбреЛ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдПрдбреНрд░реЗрд╕ рдмрд╛рд░ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВ http://localhost:8080/ ред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╣рдо "рд╣реЗрд▓реЛ рдПрд╡рд░реАрд╡рди" рдЯреЗрдХреНрд╕реНрдЯ рджреЗрдЦреЗрдВрдЧреЗ, рдФрд░ рд╕рд░реНрд╡рд░ рд▓реЙрдЧ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рдорд╛рди рд╣реИрдВ:

 Server started! Client connected! GET / HTTP/1.1 Host: localhost:8080 Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,he;q=0.6,de;q=0.5,cs;q=0.4 Cookie: _ga=GA1.1.1849608036.1549463927; portainer.pagination_containers=100; _gid=GA1.1.80775985.1550669456; If-Modified-Since: Sat, 05 Jan 2019 12:10:16 GMT Client disconnected! 

рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдПрдбреНрд░реЗрд╕ рдмрд╛рд░ рдореЗрдВ рдХреБрдЫ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдВрдЯрд░ рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЬреАрдИрдЯреА рд╢рдмреНрдж рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд▓рд╛рдЗрди рдлреАрдб рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред GET рд╢рдмреНрдж рдХреЗ рдмрд╛рдж, рдПрдХ рд╕реНрдерд╛рди рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдиреБрд░реЛрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдкрде рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ http://localhost:8080/something рджрд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд▓реЙрдЧ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдкрд╛рда рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИред

рдХреНрд╡реЗрд░реА рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ, рджреВрд╕рд░реЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рддрдерд╛рдХрдерд┐рдд рд╣реИрдВ рд╣реЗрдбрд░ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╣реЗрдбрд░ рд▓рд╛рдЗрди рдореЗрдВ рдкреНрд░рд╛рд░реВрдк [ ] : []; []; ... [] [ ] : []; []; ... [] [ ] : []; []; ... [] ред

рдЕрдиреБрд░реЛрдз рдкрд╛рда рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрд╕реЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рдорд╛рди рд╣реИред рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ 200 рдУрдХреЗ рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рдЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЕрдиреБрд░реЛрдз рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╣рд░ рдХреЛрдИ 404 рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдЬрд╛рдирддрд╛ рд╣реИ, рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ;))ред рдЗрд╕рдХреЗ рдмрд╛рдж рд╕рд┐рд░реНрдл рдПрдХ рдХрдВрдЯреЗрдВрдЯ-рдЯрд╛рдЗрдк рд╣реЗрдбрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдХрд┐рдП рдЧрдП рдбреЙрдХреНрдпреВрдореЗрдВрдЯ (рдЯреЗрдХреНрд╕реНрдЯ / html) рдХреЗ рдлреЙрд░реНрдореЗрдЯ рдФрд░ рдЙрд╕рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ (charset = utf-8) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рд╣реЛрддреА рд╣реИред рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЗ рдмрд╛рдж рдПрдХ рдкрдВрдХреНрддрд┐ рдлрд╝реАрдб (HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛) рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд╛рда рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд╣ рд╕рдм рд╣реИ! рдмреЗрд╢рдХ, рдпрд╣ рдЖрдкрдХреЛ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдВрдЪрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдореИрдВ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдпреБрдкреАрдбреАред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдЙрджрд╛рд╣рд░рдг рд╣реЙрд╡рд░реНрдб рдЯреЙрд╕реНрдХ рд╡рд░реНрдХреНрд╕ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ : рдкреЙрд▓ рдбреЗрдХ, рдмреБрдбреА рдХреБрд░рдирд┐рдпрд╛рд╡рди , рдЕрдзреНрдпрд╛рдп 1 - рд╕рд┐рдВрдкрд▓ рд╡реЗрдм рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд▓реЗрдЯ рдХрдВрдЯреЗрдирд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдб ред

UPD1ред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реЗрдмрд┐рдирд╛рд░ www.youtube.com/watch?v=RBUFdFKg_rI

Source: https://habr.com/ru/post/hi441150/


All Articles