Web development is and should always be a full-stack affair. Otherwise your frontend developers would request apis in a way that destroy performance and create a database model or logic that is unmaintainable on the server-side. Your backend developers would make apis that make the requested front-end design make a hundred api calls or api calls in the wrong places (like during a transition/animation).
It's not just about communication either, though that's also important - it's exceedingly hard for specialized developers to understand the reasons for another's requests, being full-stack means you can see the full-picture.
It's about owning the feature/product from beginning to end. It's about knowing what tradeoffs to make in the serverside, clientside, database or ops, which you can only do effectively if you are familiar with each. It's about never being stuck waiting for your backend to fix an api that isn't right, for your dba to build that query so it won't take a year to run.
That isn't to say that you can't specialize while being Full-stack or that specialized roles outside of web development shouldn't exist (for example game development, big data, machine learning).