찾다
백엔드 개발PHP 튜토리얼B/S와 C/S가 무엇인지 설명해보세요

면접을 통해 느낀 생각: B/S와 C/S는 정확히 무엇인가요? 1. 현재 상황 설명:
취업의 황금기에 나는 운좋게도 회사의 독립 기술 면접관이 되었습니다. 그리고 채용에 대한 최종 결정을 내리게 되었는지, 상사의 전폭적인 신뢰를 바탕으로 회사에 적합한 인재를 찾아야 한다고 상사에게도 약속했습니다. 자신감을 가지고 구직자들을 차례로 인터뷰하여 알게 되었습니다. 대부분의 구직자들의 문제점은 첫째, 야망이 높고 야망이 낮다는 점이다. 즉, 오랜 근무 경험에도 불구하고 업무 내용과 개인적인 사정으로 인해 기본 지식이 약하다는 점이다. 그들은 이것만 알고 있다고 말할 수 있습니다. 그러나 왜 이런 방식으로 사용해야 합니까? 나는 지식의 폭은 말할 것도 없고 급여 기대치도 고려하거나 요약한 적이 없습니다. 매우 높습니다. 두 번째는 B/S가 C/S와 구별될 수 없다는 것입니다. 그들은 B/S가 웹 페이지와 관련된 일을 하는 것이며 JSCSSHTMLC#MVC와 같은 많은 기술적 사항을 포함할 수 있다고 생각합니다. /S 중심의 작업 내용입니다. C/S는 단지 클라이언트 데스크톱 프로그램일 뿐이라고 생각합니다. WINFORM, WPF는 너무 단순하거나 개발 전망이 없다고 생각합니다. ? 이번 글에서는 주로 B/S와 C/S가 무엇인지, 그리고 이들 사이의 유사점과 차이점은 무엇인지에 대해 설명합니다.
2.B/S
B/S는 브라우저와 서버를 의미하며, 중국어는 브라우저 측 아키텍처와 서버 측 아키텍처를 의미합니다. 이 아키텍처는 실제로는 클라이언트 클라이언트입니다. 본 클라이언트는 별도의 어플리케이션 설치가 필요하지 않으며, 브라우저에서 HTTP를 통해 서버측 관련 리소스(웹페이지 리소스)를 요청하기만 하면 클라이언트 브라우저에서 추가, 삭제, 수정, 검색이 가능합니다. 이는 사용자의 컴퓨터 운영체제 환경에 의존하지 않고 브라우저 환경에만 관련되어 있습니다. 물론 웹페이지의 복잡성으로 인해 웹페이지 프런트엔드 기술과 백엔드 기술에도 확장됩니다. 최종 기술은 JS, HTML, CSS와 같은 브라우저에서의 프로그래밍 기술을 의미합니다. 이러한 프런트 엔드 기술은 서버 측이 아닌 클라이언트 브라우저에서 실행됩니다. 믿을 수 없다면 테스트해 볼 수 있습니다. 페이지에 JS 스크립트가 포함된 경우 브라우저 속성에서 JS를 비활성화하면 페이지에서 JS에 의존하는 기술을 사용할 수 없습니다. 백엔드 기술은 C#, JAVA 등 서버(즉, 서버 측)에서 실행되는 프로그래밍 기술을 의미합니다. 이러한 프로그래밍 기술은 우리가 일반적으로 C# 프로그래밍 및 JAVA 프로그래밍으로 이해하는 것과 동일하지만 여기서는 우리는 HTTP 프로토콜의 프로그래밍을 고려해야 합니다. 아키텍처 다이어그램은 다음과 같습니다.

3. C/S
C/S는 클라이언트 및 서버, 중국어 의미: 클라이언트 및 서버 측 아키텍처도 여기서는 고객 수준으로 구분됩니다. 클라이언트 응용 프로그램 EXE를 의미합니다. 이 프로그램은 사용자 컴퓨터에서 실행되기 전에 먼저 설치되어야 합니다. 예를 들어, 클라이언트 응용 프로그램을 기반으로 개발된 EXE 프로그램을 실행하려는 경우. WINFORM, 먼저 컴퓨터에 .NET FRAMEWORK 구성 요소를 설치해야 합니다. 그렇지 않으면 제대로 실행되지 않습니다. 여기서 서버 측은 필수적이지 않은 부분입니다. 클라이언트가 독립형 애플리케이션이고 데이터베이스 또는 기타 분산 기술이 필요하지 않은 경우 클라이언트에 데이터베이스 또는 기타 분산 기술이 필요한 경우 서버 측을 생략할 수 있습니다. 여기서 서버사이드란 데이터베이스 서버의 서버사이드 또는 기타 분산 기술(WEB API, WEB SERVICE 등)이 위치한 서버사이드를 의미합니다. 아키텍처 다이어그램은 다음과 같습니다.


4. B/S와 C/S의 유사점과 차이점
B/S와 C/S의 공통점은 영어 약어에서 알 수 있습니다. S, 이 S는 서버측(애플리케이션 백엔드)을 의미합니다. 서버측은 특정 하위 부문으로 보면 애플리케이션 서버측, 데이터베이스 서버측, 캐시 서버측 등이 있습니다. 차이점은 영어 약어에서 알 수 있듯이 B와 C의 차이입니다. B/S 및 C/S에 대한 이전 소개에서 B는 브라우저를 나타내고 C는 브라우저를 나타냄을 알 수 있습니다. 그러나 넓은 의미로 보면 B도 일종의 클라이언트이므로 브라우저도 설치해야 하는데, 같은 B/S 구조가 설치되어 있지 않으면 작동하지 않습니다. 단지 대부분의 브라우저가 기본적으로 이를 설치한다는 점입니다. 아키텍처 관점에서 B/S와 C/S의 유일한 차이점은 프레젠테이션 계층이지만 C/S는 웹 페이지 프런트엔드 기술을 이해해야 할 수도 있습니다. WINFORM, WPF 및 기타 응용 프로그램 프런트 엔드 기술을 이해해야 할 수도 있습니다. 다른 모든 것은 동일합니다. 순전히 C# 또는 JAVA 백엔드 개발에 종사하는 경우 B/S와 C/S는 모두 동일합니다. C#이나 JAVA와 같은 동적 언어를 사용하여 프리젠테이션 계층에 리소스를 제공하거나 리소스에 대한 관련 처리를 수행합니다. 기업이 명확한 업무 분업을 갖고 있다면 C#이나 JAVA 엔지니어가 해야 할 일은 백엔드 개발이지, B/S나 C/S를 강조할 필요는 없습니다. 물론, 도움이 될 수 있는 몇 가지 프론트엔드 기술을 아는 것이 더 낫습니다. 자신의 기술은 금상첨화이지만 회사가 프론트엔드 기술에 대한 이해에 대한 대가를 지불하기를 원한다면(연봉 인상) [전체 제외] -스택 엔지니어] 그렇다면 그것은 아마도 약간 희망적인 생각일 것입니다. 제가 사장이라면 확실히 전문적인 프론트 엔드와 전문적인 백엔드를 찾는 것을 선호할 것입니다. 이런 사람의 백엔드는 프론트 엔드와 백엔드에 대해 어느 정도 이해하고 있습니다. , 그러나 충분히 전문적이지 않으므로 사용하지 않는 것이 좋습니다. B/S와 C/S의 통합 아키텍처는 아래와 같습니다.


위의 B/S와 C/S 통합 아키텍처 다이어그램을 초보자도 쉽게 이해할 수 있도록 매우 간단하게 작성했습니다. DEMO , B/S와 C/S의 공통점과 차이점을 반영하기 위해 코드는 다음과 같습니다.
서버 측:

namespace Demo.Server
{
    public static class Logic
    {
        public static int Add(int a, int b)
        {
            return a + b;
        }
    }
}


브라우저 측(백엔드는 서버에 속함) 하지만 위의 별도 서버 레이어와 다르므로 여기에서 서버 레이어를 참조해야 합니다.):

namespace Demo.Browser
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
          TextBox3.Text=Demo.Server.Logic.Add(int.Parse(TextBox1.Text), int.Parse(TextBox2.Text)).ToString();
        }
    }
}


브라우저 측(프런트엔드):


nbsp;html>



<meta>
    <title></title>


    
    

                                                                                    

    


运行结果如下:


Client端:创建一个WINFORM窗体,添加类似上面的三个文本框及一个提交按钮,最后写点击事件(需引用Server层)

namespace Demo.Client
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox3.Text = Demo.Server.Logic.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text)).ToString();
        }
    }
}


실행 결과는 다음과 같습니다.


물론 이 DEMO는 매우 간단합니다. 주로 표시 계층(웹 페이지 및 WINFORM 양식)의 차이점을 제외하면 서버 측이 동일합니다. 알고리즘을 변경해야 하는 경우에는 서버측만 변경하면 브라우저와 WINFORM 클라이언트의 계산 결과가 변경됩니다. 물론 제가 여기에 작성한 내용은 충분히 표준화되지 않았습니다. 완전한 아키텍처 아이디어는 인터페이스 기반 프로그래밍, 종속성 주입 등과 같은 여러 측면을 고려해야 합니다.
5. 초보 프로그래머를 위한 몇 가지 제안
웹 프론트엔드 기술에 관심이 많다면 웹 프론트엔드 개발에 직접 참여하는 것이 좋습니다. UI 디자이너, WEB 프론트엔드. 엔지니어, 소프트웨어 개발 엔지니어는 일반적으로 백엔드 개발, 즉 순수 C#이나 JAVA 등의 프로그래밍 작업에 종사하는 것을 말합니다. 물론, 소규모 기업이나 분업이 불명확한 기업도 예외는 아닙니다. 프론트 엔드와 백엔드를 모두 수행하므로 맹목적으로 또는 일방적으로 생각하지 마십시오. B/S는 C/S보다 각각 장점이 있다고 말할 수 있습니다. 백엔드 코드는 변경되지 않은 채로 브라우저나 클라이언트 애플리케이션을 마음대로 실행할 수 있습니다. 마지막으로 세상에 최고의 기술은 없고 가장 적합한 기술만이 있다고 말씀드리고 싶습니다. 기술은 무술과도 같아서 기본기가 탄탄하면 배우기가 더 쉽습니다. 아키텍처 및 디자인 패턴은 동시에 AOP, SOA, DI, IOC, DDD, CQRS 등의 원리를 이해하고 하나의 예에서 추론하는 한 높은 수준의 것으로 보입니다. , 당신은 "이기기 위한 트릭은 없지만 승리하기 위한 트릭은 있다"라는 가장 높은 상태에 도달할 수 있습니다.
또한, 이 글에서는 B/S와 C/S의 차이점을 자세히 설명하지 않습니다. 둘의 차이점을 더 완전하게 이해하고 싶다면 구조적 차이점에 대한 종합 분석 글을 참조하세요. C/S와 B/S 사이에는 바이두에서 직접 확인하실 수 있습니다. 위 사항은 모두 제 개인적인 의견이니 혹평하지 말아주세요. 감사합니다!
추가 사항:
여러분의 댓글을 보고 모두가 불만을 토로할 것이라고 예상했지만 기사 마지막 부분에서 여러분에게 불평하지 말라고 상기시켰지만 그래도 그럴 것이라고는 예상하지 못했습니다. 많은 사람들이 불평하고 있습니다. 아마도 이 글은 B/S와 C/S의 차이점에 대한 심층적인 설명이 아닙니다. 이 글을 쓸 필요는 없습니다. 사실 제가 이 글에서 설명하고 싶은 것은 웹 디자인을 B/S 아키텍처와 동일시하지 말라는 것입니다. B/S 아키텍처를 알고 있기 때문에 JS, CSS 및 HTML을 사용하십시오. 또한 웹 프론트 엔드 디자인에만 관심이 있다면 웹 프론트 엔드 작업을 권장하지 않습니다. C# 소프트웨어 개발 엔지니어 면접 시 B/S, JS, CSS, HTML을 하고 싶다고 강조합니다. 동시에 웹 백엔드 프로그래밍에는 관심이 없습니다. 이 기사에서는 B/S와 C/S의 유사점과 차이점을 아키텍처 관점에서 분석합니다. B/S와 C/S는 프레젠테이션 계층에서만 다를 뿐이라고 생각하며 위에도 간단한 예를 나열했습니다. B/S에는 웹 디자인이 있다는 사실을 결코 부인하지 않았습니다(JS, CSS, HTML 포함). 이 글을 쓰는 목적은 모든 초보자에게 기본 프로그래밍 기술 강화, 프로그래밍 지식 향상, 다양한 프레임워크의 본질 이해 등을 알려주는 것입니다. 또한, 퇴사하셨거나 퇴사를 앞둔 분들 모두 하루빨리 좋은 일자리를 찾으실 수 있기를 바라겠습니다.
댓글 질문에 대한 통일된 답변:
1. 문제를 일으키려는 것이 아닙니다. 이 글의 핵심 의미를 이해하지 못했을 수도 있고, 실제 목적이 충분히 명확하지 않을 수도 있습니다.
2. 제가 다른 사람의 글을 표절했다고 생각하는 분들도 계십니다. 게다가 제가 쓴 글을 보면 아주 진보된 기술도 포함되어 있지 않습니다. .
꼭 표절해야 하나요?3. 아직도 B/S와 C/S를 공부하는 것이 피상적이라고 생각하는 분들이 계시는데, B/S와 C/S를 이해하신다면 간단해 보이는 문제도 해결될 수 있을 것 같습니다. 평생 코드를 작성하고도 여전히 B/S에 머물며 웹 디자인만 하고 있습니다. 반대로 실제 전문가들은 그렇게 생각하지 않을 것입니다. /S와 C/S는 동일합니다. C/S에는 단일 버전이 있고, B/S에는 독립형 버전도 있습니다. 믿을 수 없다면 정적 HTML 페이지( JS, HTML, CSS가 포함되어 있음)을 열고 직접 실행하면 IIS나 서버에 게시할 필요가 없습니다. 동시에 C/S에는 서버 측이 있고 B/S에도 서버 측이 있습니다. C/S가 분산 아키텍처(예: WEB 서비스, WCF, WEB API 및 기타 비즈니스 로직을 캡슐화하는 기술)를 채택하는 경우 그러면 C/S 로컬 애플리케이션에는 인터페이스만 있고 모든 비즈니스 로직은 B/S 서버 측에 있습니다. B/S와 C/S의 건축적 특성을 이해하면 향후 건축가나 관리자로 일할 기회가 있을 경우 기술 및 건축적 방향을 잘 이해하는 데 도움이 됩니다.
4. 제가 적극적으로 구직자에게 물어보거나 B/S와 C/S의 차이점을 강조하지는 않았습니다. 그런데 면접 때 일부 구직자(초보)가 B/S를 알고 있고 B/S를 가고 싶다고 했습니다. /S. 개발 방향에 대해 B/S에 대해 어떤 점을 알고 있는지 물었고 그는 이 글의 시작 부분에 말한 대로만 말했습니다. 그러나 그는 C#에 대해 많은 연구를 하지 않았기 때문에 제가 제안했습니다. WEB 프론트엔드 개발로 전환하는 것이 더 나을지도 모른다는 생각이 이 글을 쓰게 된 계기이기도 했습니다.

5 동시에 그 의미를 이해해 주신 분들께 감사의 말씀을 전하고 싶습니다. 제가 이 글을 쓴 것은 반인간적이거나 말싸움을 하려는 것이 아닙니다. 모두가 이성적으로 읽고 의견을 나누시기를 바랍니다.

이 글에서는 B/S와 C/S 관련 지식을 자세히 설명하고 있습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 참고해주세요.

관련 권장 사항:

css3+html5를 통해 세로 메뉴 구현 방법

HTML5 로컬 저장소 관련 설명

PHP 보안 문자 인증 코드 클래스에 대한 설명

위 내용은 B/S와 C/S가 무엇인지 설명해보세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP 세션이 실패 할 수있는 몇 가지 일반적인 문제는 무엇입니까?PHP 세션이 실패 할 수있는 몇 가지 일반적인 문제는 무엇입니까?Apr 25, 2025 am 12:16 AM

phpsession 실패 이유에는 구성 오류, 쿠키 문제 및 세션 만료가 포함됩니다. 1. 구성 오류 : 올바른 세션을 확인하고 설정합니다. 2. 쿠키 문제 : 쿠키가 올바르게 설정되어 있는지 확인하십시오. 3. 세션 만료 : 세션 시간을 연장하기 위해 세션을 조정합니다 .GC_MAXLIFETIME 값을 조정하십시오.

PHP의 세션 관련 문제를 어떻게 디버그합니까?PHP의 세션 관련 문제를 어떻게 디버그합니까?Apr 25, 2025 am 12:12 AM

PHP에서 세션 문제를 디버그하는 방법 : 1. 세션이 올바르게 시작되었는지 확인하십시오. 2. 세션 ID의 전달을 확인하십시오. 3. 세션 데이터의 저장 및 읽기를 확인하십시오. 4. 서버 구성을 확인하십시오. 세션 ID 및 데이터를 출력, 세션 파일 컨텐츠보기 등을 통해 세션 관련 문제를 효과적으로 진단하고 해결할 수 있습니다.

session_start ()가 여러 번 호출되면 어떻게됩니까?session_start ()가 여러 번 호출되면 어떻게됩니까?Apr 25, 2025 am 12:06 AM

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

PHP에서 세션 수명을 어떻게 구성합니까?PHP에서 세션 수명을 어떻게 구성합니까?Apr 25, 2025 am 12:05 AM

SESSION.GC_MAXLIFETIME 및 SESSION.COOKIE_LIFETIME을 설정하여 PHP에서 세션 수명을 구성 할 수 있습니다. 1) SESSION.GC_MAXLIFETIME 서버 측 세션 데이터의 생존 시간을 제어합니다. 2) 세션 .Cookie_Lifetime 클라이언트 쿠키의 수명주기를 제어합니다. 0으로 설정하면 브라우저가 닫히면 쿠키가 만료됩니다.

세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?Apr 24, 2025 am 12:16 AM

데이터베이스 스토리지 세션 사용의 주요 장점에는 지속성, 확장 성 및 보안이 포함됩니다. 1. 지속성 : 서버가 다시 시작 되더라도 세션 데이터는 변경되지 않아도됩니다. 2. 확장 성 : 분산 시스템에 적용하여 세션 데이터가 여러 서버간에 동기화되도록합니다. 3. 보안 : 데이터베이스는 민감한 정보를 보호하기 위해 암호화 된 스토리지를 제공합니다.

PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?Apr 24, 2025 am 12:16 AM

SessionHandlerInterface 인터페이스를 구현하여 PHP에서 사용자 정의 세션 처리 구현을 수행 할 수 있습니다. 특정 단계에는 다음이 포함됩니다. 1) CustomsessionHandler와 같은 SessionHandlerInterface를 구현하는 클래스 만들기; 2) 인터페이스의 방법 (예 : Open, Close, Read, Write, Despare, GC)의 수명주기 및 세션 데이터의 저장 방법을 정의하기 위해 방법을 다시 작성합니다. 3) PHP 스크립트에 사용자 정의 세션 프로세서를 등록하고 세션을 시작하십시오. 이를 통해 MySQL 및 Redis와 같은 미디어에 데이터를 저장하여 성능, 보안 및 확장 성을 향상시킬 수 있습니다.

세션 ID 란 무엇입니까?세션 ID 란 무엇입니까?Apr 24, 2025 am 12:13 AM

SessionId는 웹 애플리케이션에 사용되는 메커니즘으로 사용자 세션 상태를 추적합니다. 1. 사용자와 서버 간의 여러 상호 작용 중에 사용자의 신원 정보를 유지하는 데 사용되는 무작위로 생성 된 문자열입니다. 2. 서버는 쿠키 또는 URL 매개 변수를 통해 클라이언트로 생성하여 보낸다. 3. 생성은 일반적으로 임의의 알고리즘을 사용하여 독창성과 예측 불가능 성을 보장합니다. 4. 실제 개발에서 Redis와 같은 메모리 내 데이터베이스를 사용하여 세션 데이터를 저장하여 성능 및 보안을 향상시킬 수 있습니다.

무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?Apr 24, 2025 am 12:12 AM

JWT 또는 쿠키를 사용하여 API와 같은 무국적 환경에서 세션을 관리 할 수 ​​있습니다. 1. JWT는 무국적자 및 확장 성에 적합하지만 빅 데이터와 관련하여 크기가 크다. 2. 쿠키는보다 전통적이고 구현하기 쉽지만 보안을 보장하기 위해주의해서 구성해야합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기