Python: Tạo một máy chủ HTTP đơn giản

Lập Trình
Python: Tạo một máy chủ HTTP đơn giản
Bài viết được sự cho phép của tác giả Phạm Văn Nguyên Web sever có ở khắp mọi nơi. Cho dù bạn là loại kỹ sư phần mềm nào, tại một số thời điểm trong sự nghiệp, bạn sẽ phải tương tác với các máy chủ web. Có thể bạn đang xây dựng một máy chủ API cho dịch vụ phụ trợ. Hoặc có thể bạn chỉ đang cấu hình một máy chủ web cho trang web của bạn. Trong bài viết này, tôi sẽ đề cập đến cách tạo máy chủ web http cơ bản nhất trong Python. Nhưng vì tôi muốn chắc chắn rằng bạn hiểu những gì chúng tôi đang xây dựng, tôi sẽ đưa ra một cái nhìn tổng quan trước tiên về máy chủ web là gì và cách chúng hoạt động. Nếu bạn đã biết máy chủ web hoạt động như thế nào, thì bạn có thể bỏ qua trực tiếp đến phần này. Việc làm python lương cao cho bạn Máy chủ HTTP là gì? Máy chủ web HTTP không có gì ngoài một quy trình đang chạy trên máy của bạn và thực hiện chính xác hai điều: 1- Listen các yêu cầu http đến trên một địa chỉ TCP socket cụ thể (địa chỉ IP và số cổng mà tôi sẽ nói về sau) 2- Xử lý yêu cầu này và gửi phản hồi lại cho người dùng. Cụ thể thì hãy xem ví dụ sau: Hãy tưởng tượng bạn kéo trình duyệt Chrome của mình lên và nhập www.yahoo.com vào thanh địa chỉ. Tất nhiên, bạn sẽ nhận được trang chủ Yahoo được hiển thị trên cửa sổ trình duyệt của bạn. Nhưng những gì thực sự chỉ xảy ra? Trên thực tế rất nhiều điều đã xảy ra và...

Bài viết được sự cho phép của tác giả Phạm Văn Nguyên

Web sever có ở khắp mọi nơi.

Cho dù bạn là loại kỹ sư phần mềm nào, tại một số thời điểm trong sự nghiệp, bạn sẽ phải tương tác với các máy chủ web. Có thể bạn đang xây dựng một máy chủ API cho dịch vụ phụ trợ. Hoặc có thể bạn chỉ đang cấu hình một máy chủ web cho trang web của bạn.

Trong bài viết này, tôi sẽ đề cập đến cách tạo máy chủ web http cơ bản nhất trong Python.

Nhưng vì tôi muốn chắc chắn rằng bạn hiểu những gì chúng tôi đang xây dựng, tôi sẽ đưa ra một cái nhìn tổng quan trước tiên về máy chủ web là gì và cách chúng hoạt động.

Nếu bạn đã biết máy chủ web hoạt động như thế nào, thì bạn có thể bỏ qua trực tiếp đến phần này.

Việc làm python lương cao cho bạn

Máy chủ HTTP là gì?

Máy chủ web HTTP không có gì ngoài một quy trình đang chạy trên máy của bạn và thực hiện chính xác hai điều:

1- Listen các yêu cầu http đến trên một địa chỉ TCP socket cụ thể (địa chỉ IP và số cổng mà tôi sẽ nói về sau)

2- Xử lý yêu cầu này và gửi phản hồi lại cho người dùng.

Cụ thể thì hãy xem ví dụ sau:

Hãy tưởng tượng bạn kéo trình duyệt Chrome của mình lên và nhập www.yahoo.com  vào thanh địa chỉ.

Python:Tạo một máy chủ HTTP đơn giảnPython:Tạo một máy chủ HTTP đơn giản

Tất nhiên, bạn sẽ nhận được trang chủ Yahoo được hiển thị trên cửa sổ trình duyệt của bạn.

Nhưng những gì thực sự chỉ xảy ra?

Trên thực tế rất nhiều điều đã xảy ra và tôi có thể dành cả một bài viết để giải thích sự kỳ diệu đằng sau việc này xảy ra như thế nào.

Ở cấp độ cao, khi bạn nhập www.yahoo.com  trên trình duyệt của mình, trình duyệt của bạn sẽ tạo một thông báo mạng được gọi là yêu cầu HTTP .

Yêu cầu này sẽ đi đến tất cả các máy tính Yahoo có máy chủ web đang chạy trên đó. Máy chủ web này sẽ chặn yêu cầu của bạn và xử lý nó bằng cách phản hồi lại bằng html của trang chủ Yahoo.

Cuối cùng, trình duyệt của bạn hiển thị html này trên màn hình và đó là những gì bạn thấy trên màn hình.

Python:Tạo một máy chủ HTTP đơn giảnPython:Tạo một máy chủ HTTP đơn giản

Mọi tương tác với trang chủ Yahoo sau đó (ví dụ: khi bạn nhấp vào liên kết) sẽ bắt đầu một yêu cầu mới và phản hồi chính xác như yêu cầu đầu tiên.

Để nhắc lại, máy nhận được yêu cầu http có một quy trình phần mềm được gọi là máy chủ web chạy trên nó. Máy chủ web này chịu trách nhiệm chặn các yêu cầu này và xử lý chúng một cách thích hợp .

Được rồi, bây giờ bạn đã biết máy chủ web là gì và chức năng của nó chính xác là gì, bạn có thể tự hỏi làm thế nào để yêu cầu đến được máy yahoo đó ngay từ đầu?

Câu hỏi hay!

Trong thực tế đây là một trong những câu hỏi yêu thích của tôi mà tôi hỏi các ứng viên tiềm năng trong một cuộc phỏng vấn lập trình viên .

Hãy để tôi giải thích làm thế nào, nhưng một lần nữa.

”]

Địa chỉ  TCP socket

Python:Tạo một máy chủ HTTP đơn giảnPython:Tạo một máy chủ HTTP đơn giản

Bất kỳ tin nhắn http nào (cho dù đó là yêu cầu hay phản hồi) đều cần biết cách đến đích.

Để đến đích, mỗi thông báo http mang một địa chỉ được gọi là địa chỉ TCP đích .

Và mỗi địa chỉ TCP bao gồm một địa chỉ IP và số cổng .

Tôi biết tất cả các từ viết tắt (TCP, IP, v.v.) có thể áp đảo nếu khái niệm mạng của bạn không mạnh.

Tôi sẽ cố gắng làm cho nó đơn giản nhưng nếu bạn quan tâm đến việc nâng cao kiến thức về các khái niệm mạng, tôi đánh giá cao cuốn sách này của Ross và Kurose .

Vậy địa chỉ đó ở đâu khi tất cả những gì bạn đã làm là gõ www.yahoo.com  trên trình duyệt của bạn?

Chà, tên miền này được chuyển đổi thành địa chỉ IP thông qua cơ sở dữ liệu phân tán lớn gọi là DNS .

Bạn có muốn kiểm tra địa chỉ IP này là gì không?

Dễ dàng! Vào cmd trên windows hoặc terminal trên linux và gõ lệnh sau:

ping yahoo.com

Như bạn có thể thấy, DNS sẽ dịch yahoo.com sang bất kỳ địa chỉ nào ở trên.

Chỉ riêng địa chỉ IP sẽ cho phép tin nhắn HTTP đến đúng máy, nhưng bạn vẫn cần số cổng để yêu cầu HTTP đến chính xác máy chủ web.

Nói cách khác, máy chủ web là một ứng dụng mạng thông thường đang lắng nghe trên một cổng cụ thể.

Và yêu cầu http PHẢI được gửi đến cổng đó.

Vậy số cổng ở đâu khi bạn gõ www.yahoo.com ?

Theo mặc định, số cổng là 80 cho http và 443 cho https , do đó, mặc dù bạn chưa chỉ định rõ ràng số cổng, nó vẫn ở đó.

Và nếu máy chủ web đang nghe số cổng không mặc định (không phải 80 hay 443), bạn phải chỉ định rõ ràng số cổng như thế này:

Python:Tạo một máy chủ HTTP đơn giảnPython:Tạo một máy chủ HTTP đơn giản

Bây giờ bạn sẽ có tất cả các thông tin cần thiết để tạo một máy chủ web http trong Python.

Vì vậy, không có thêm rắc rối, hãy bắt đầu.

Tạo một tệp HTML đơn giản

Đây là những gì chúng tôi muốn làm.

Chúng tôi muốn tạo một máy chủ http đơn giản phục vụ trang web html tĩnh.

Hãy tạo trang html của chúng tôi.

<html>     <head>         <title>Python is awesome!</title>     </head>     <body>         <h1>Nguyenpv.com</h1>         <p>Congratulations! The HTTP Server is working!</p>     </body>      </html>

Bây giờ hãy tiếp tục và lưu tệp này dưới dạng index.html

Với trang web mà chúng tôi muốn phục vụ theo cách khác, bước tiếp theo là tạo một máy chủ web sẽ phục vụ trang html này.

Tạo một máy chủ web HTTP

Để tạo một máy chủ web trong Python 3 , bạn sẽ cần import 2 module: http.server và socketserver

Lưu ý rằng trong Python 2 , có một module có tên  SimpleHTTPServer . Module này đã được hợp nhất vào http.server trong Python 3

Chúng ta hãy xem mã để tạo một máy chủ http

import http.serverimport socketserver PORT = 8080Handler = http.server.SimpleHTTPRequestHandlerwith socketserver.TCPServer(("", PORT), Handler) as httpd:     print("serving at port", PORT)     httpd.serve_forever()

Bây giờ hãy phân tích từng dòng mã này.

Đầu tiên, như tôi đã đề cập trước đó, máy chủ web là một quá trình lắng nghe các yêu cầu đến trên địa chỉ TCP cụ thể.

Và như bạn biết bây giờ, một địa chỉ TCP được xác định bởi một địa chỉ IP và số cổng .

Thứ hai, một máy chủ web cũng cần được cho biết cách xử lý các yêu cầu đến.

Những yêu cầu đến được xử lý bởi các xử lý đặc biệt. Bạn có thể nghĩ về một máy chủ web như một người điều phối, một yêu cầu đến, máy chủ http kiểm tra yêu cầu và gửi nó đến một trình xử lý được chỉ định.

Tất nhiên những người xử lý này có thể làm bất cứ điều gì bạn muốn.

Nhưng bạn nghĩ xử lý cơ bản nhất là gì?

Vâng, đó sẽ là một trình xử lý chỉ phục vụ một tệp tĩnh.

Nói cách khác, khi tôi truy cập yahoo.com , máy chủ web ở đầu kia sẽ gửi lại một tệp html tĩnh.

Đây thực tế là những gì chúng tôi đang cố gắng làm chính xác.

Và đó, bạn của tôi, là http.server.SimpleHTTPRequestHandler là gì: một trình xử lý yêu cầu HTTP đơn giản phục vụ các tệp từ thư mục hiện tại và bất kỳ thư mục con nào của nó.

Bây giờ hãy nói về lớp socketserver.TCPServer .

Một phiên bản của TCPServer mô tả một máy chủ sử dụng giao thức TCP để gửi và nhận tin nhắn (http là giao thức lớp ứng dụng trên đầu TCP).

Để khởi tạo Máy chủ TCP, chúng tôi cần hai điều:

1- Địa chỉ TCP (địa chỉ IP và số cổng)

2- Handler

socketserver.TCPServer(("", PORT), Handler)

Như bạn có thể thấy, địa chỉ TCP được truyền dưới dạng một tuple của (địa chỉ ip, port)

IP bằng rỗng có nghĩa là máy chủ sẽ lắng nghe trên bất kỳ giao diện mạng nào (tất cả các địa chỉ IP có sẵn).

Và vì PORT lưu trữ giá trị 8080, nên máy chủ sẽ lắng nghe các yêu cầu đến trên cổng đó.

Đối với handler, chúng ta đang vượt qua trình xử lý đơn giản mà chúng ta đã nói trước đó.

Handler = http.server.SimpleHTTPRequestHandler

Vâng, làm thế nào về serve_forever ?

Serve_forever là một phương thức trên phiên bản TCPServer khởi động máy chủ và bắt đầu lắng nghe và trả lời các yêu cầu đến.

Thật tuyệt, hãy lưu tệp này dưới dạng server.py trong cùng thư mục với index.html vì theo mặc định, SimpleHTTPRequestHandler sẽ tìm một tệp có tên index.html trong thư mục hiện tại.

Trong thư mục đó, khởi động máy chủ web:

$ python server.py

Bằng cách đó, giờ đây bạn có một máy chủ HTTP đang lắng nghe trên bất kỳ giao diện nào tại cổng 8080 đang chờ các yêu cầu http đến.

Bây giờ là thời gian cho những thứ thú vị!

Mở trình duyệt của bạn và nhập localhost: 8080 vào thanh địa chỉ.

Python:Tạo một máy chủ HTTP đơn giảnPython:Tạo một máy chủ HTTP đơn giản

Tuyệt vời! Hình như mọi thứ đều hoạt động tốt.

Nhưng localhost là gì?

localhost là tên máy chủ có nghĩa là  máy tính này . Nó được sử dụng để truy cập các dịch vụ mạng đang chạy trên máy chủ thông qua giao diện mạng loopback.

Và vì máy chủ web đang nghe trên bất kỳ giao diện nào , nó cũng đang nghe trên giao diện loopback.

Trong thực tế, bạn hoàn toàn có thể thay thế localhost bằng 127.0.0.1 trong trình duyệt của mình và bạn vẫn sẽ nhận được kết quả tương tự.

Tham khảo việc làm IT Hồ Chí Minh trên Station D

Cuối cùng

Bạn thực sự có thể bắt đầu một máy chủ web với python mà không cần phải viết bất kỳ tập lệnh nào.

Chỉ cần vào cmd (windows ) hoặc terminal (linux) trên máy tính của bạn và làm như sau (nhưng hãy chắc chắn rằng bạn đang ở trên python 3)

python -m http.server 8080

Theo mặc định, máy chủ này sẽ lắng nghe trên tất cả các giao diện và trên cổng 8080.

Nếu bạn muốn nghe một giao diện cụ thể, hãy làm như sau:

python -m http.server 8080 --bind 127.0.0.1

Cũng bắt đầu từ Python 3.7, bạn có thể sử dụng -directory cờ để phục vụ tập tin từ một thư mục mà không nhất thiết phải là thư mục hiện hành.

Học Python?

Nếu bạn là người mới bắt đầu,  thì tôi đánh giá cao cuốn sách này.

Không còn là người mới bắt đầu?

Sau đó, đã đến lúc đưa các kỹ năng Python của bạn lên một tầm cao mới với cuốn sách này

Bài viết gốc được đăng tải tại nguyenpv.com

Xem thêm Việc làm ngành cntt hấp dẫn trên Station D

Bài viết liên quan

Thị trường EdTech Vietnam- Nhiều tiềm năng nhưng còn bị bỏ ngỏ tại Việt Nam

Thị trường EdTech Vietnam- Nhiều tiềm năng nhưng còn bị bỏ ngỏ tại Việt Nam

Lĩnh vực EdTech (ứng dụng công nghệ vào các sản phẩm giáo dục) trên toàn cầu hiện nay đã tương đối phong phú với nhiều tên tuổi lớn phân phối đều trên các hạng mục như Broad Online Learning Platforms (nền tảng cung cấp khóa học online đại chúng – tiêu biểu như Coursera, Udemy, KhanAcademy,…) Learning Management Systems (hệ thống quản lý lớp học – tiêu biểu như Schoology, Edmodo, ClassDojo,…) Next-Gen Study Tools (công cụ hỗ trợ học tập – tiểu biểu như Kahoot!, Lumosity, Curriculet,…) Tech Learning (đào tạo công nghệ – tiêu biểu như Udacity, Codecademy, PluralSight,…), Enterprise Learning (đào tạo trong doanh nghiệp – tiêu biểu như Edcast, ExecOnline, Grovo,..),… Hiện nay thị trường EdTech tại Việt Nam đã đón nhận khoảng đầu tư khoảng 55 triệu đô cho lĩnh vực này nhiều đơn vị nước ngoài đang quan tâm mạnh đến thị trường này ngày càng nhiều hơn. Là một trong những xu hướng phát triển tốt, và có doanh nghiệp đã hoạt động khá lâu trong ngành nêu tại infographic như Topica, nhưng EdTech vẫn chỉ đang trong giai đoạn sơ khai tại Việt Nam. Tại Việt Nam, hệ sinh thái EdTech trong nước vẫn còn rất non trẻ và thiếu vắng nhiều tên tuổi trong các hạng mục như Enterprise Learning (mới chỉ có MANA), School Administration (hệ thống quản lý trường học) hay Search (tìm kiếm, so sánh trường và khóa học),… Với chỉ dưới 5% số dân công sở có sử dụng một trong các dịch vụ giáo dục online, EdTech cho thấy vẫn còn một thị trường rộng lớn đang chờ được khai phá. *** Vừa qua Station D đã công bố Báo cáo Vietnam IT Landscape 2019 đem đến cái nhìn toàn cảnh về các ứng dụng công...

By stationd
Bộ cài đặt Laravel Installer đã hỗ trợ tích hợp Jetstream

Bộ cài đặt Laravel Installer đã hỗ trợ tích hợp Jetstream

Bài viết được sự cho phép của tác giả Chung Nguyễn Hôm nay, nhóm Laravel đã phát hành một phiên bản chính mới của “ laravel/installer ” bao gồm hỗ trợ khởi động nhanh các dự án Jetstream. Với phiên bản mới này khi bạn chạy laravel new project-name , bạn sẽ nhận được các tùy chọn Jetstream. Ví dụ: API Authentication trong Laravel-Vue SPA sử dụng Jwt-auth Cách sử dụng Laravel với Socket.IO laravel new foo --jet --dev Sau đó, nó sẽ hỏi bạn thích stack Jetstream nào hơn: Which Jetstream stack do you prefer? [0] Livewire [1] inertia > livewire Will your application use teams? (yes/no) [no]: ... Nếu bạn đã cài bộ Laravel Installer, để nâng cấp lên phiên bản mới bạn chạy lệnh: composer global update Một số trường hợp cập nhật bị thất bại, bạn hãy thử, gỡ đi và cài đặt lại nha composer global remove laravel/installer composer global require laravel/installer Bài viết gốc được đăng tải tại chungnguyen.xyz Có thể bạn quan tâm: Cài đặt Laravel Làm thế nào để chạy Sql Server Installation Center sau khi đã cài đặt xong Sql Server? Quản lý các Laravel route gọn hơn và dễ dàng hơn Xem thêm Tuyển dụng lập trình Laravel hấp dẫn trên Station D

By stationd
Principle thiết kế của các sản phẩm nổi tiếng

Principle thiết kế của các sản phẩm nổi tiếng

Tác giả: Lưu Bình An Phù hợp cho các bạn thiết kế nào ko muốn làm code dạo, design dạo nữa, bạn muốn cái gì đó cao hơn ở tầng khái niệm Nếu lập trình chúng ta có các nguyên tắc chung khi viết code như KISS , DRY , thì trong thiết kế cũng có những nguyên tắc chính khi làm việc. Những nguyên tắc này sẽ là kim chỉ nam, nếu có tranh cãi giữa các member trong team, thì cứ đè nguyên tắc này ra mà giải quyết (nghe hơi có mùi cứng nhắc, mình thì thích tùy cơ ứng biến hơn) Tìm các vị trí tuyển dụng designer lương cao cho bạn Nguyên tắc thiết kế của GOV.UK Đây là danh sách của trang GOV.UK Bắt đầu với thứ user cần Làm ít hơn Thiết kế với dữ liệu Làm mọi thứ thật dễ dàng Lặp. Rồi lặp lại lần nữa Dành cho tất cả mọi người Hiểu ngữ cảnh hiện tại Làm dịch vụ digital, không phải làm website Nhất quán, nhưng không hòa tan (phải có chất riêng với thằng khác) Cởi mở, mọi thứ tốt hơn Bao trừu tượng luôn các bạn, trang Gov.uk này cũng có câu tổng quát rất hay Thiết kế tốt là thiết kế có thể sử dụng. Phục vụ cho nhiều đối tượng sử dụng, dễ đọc nhất nhất có thể. Nếu phải từ bỏ đẹp tinh tế – thì cứ bỏ luôn . Chúng ta tạo sản phẩm cho nhu cầu sử dụng, không phải cho người hâm mộ . Chúng ta thiết kế để cả nước sử dụng, không phải những người đã từng sử dụng web. Những người cần dịch vụ của chúng ta nhất là những người đang cảm thấy khó sử dụng dịch...

By stationd
Applicant Tracking System là gì? ATS hoạt động ra sao

Applicant Tracking System là gì? ATS hoạt động ra sao

Công nghệ phát triển hướng đến giải quyết và cải tiến cho mỗi quy trình, hoạt động của doanh nghiệp cũng như đời sống. Đối với lĩnh vực tuyển dụng, sự xuất hiện của phần mềm ATS (Applicant Tracking System) mang đến nhiều thay đổi đáng kể, cả đối với nhà tuyển dụng và ứng viên. Vậy phần mềm ATS là gì? Chúng được sử dụng ra sao? Những thắc mắc về phần mềm ATS trong tuyển dụng sẽ được Station D giải đáp tại bài viết dưới đây. Hệ thống sàng lọc ứng viên ATS (Applicant Tracking System) Applicant Tracking System là gì? Applicant Tracking System (ATS) hay còn gọi là Hệ thống quản lý hồ sơ ứng viên là phần mềm quản lý quy trình tuyển dụng từ đầu đến cuối một cách tự động hóa. ATS được thiết kế để giúp nhà tuyển dụng tiết kiệm thời gian và chi phí trong việc thu thập, sắp xếp và sàng lọc hồ sơ các ứng viên. Các tính năng nổi bật của Applicant Tracking System Các tính năng nổi bật của Applicant Tracking System Applicant Tracking System (ATS) là một công cụ quan trọng giúp các công ty quản lý quy trình tuyển dụng hiệu quả hơn. Cùng chúng tôi điểm qua các tính năng nổi bật của ATS: Sàng lọc và quản lý hồ sơ ứng viên Khả năng tìm kiếm và sàng lọc ứng viên là một trong các tính năng nổi bật nhất của ATS. Với việc sử dụng từ khóa và tiêu chí cụ thể, hệ thống có thể nhanh chóng tìm kiếm và sàng lọc các hồ sơ phù hợp, tự động loại bỏ những ứng viên không đạt yêu cầu. Điều này giúp nhà tuyển dụng tập trung vào những ứng viên...

By stationd
Hiểu về trình duyệt – How browsers work

Hiểu về trình duyệt – How browsers work

Bài viết được sự cho phép của vntesters.com Khi nhìn từ bên ngoài, trình duyệt web giống như một ứng dụng hiển thị những thông tin và tài nguyên từ server lên màn hình người sử dụng, nhưng để làm được công việc hiển thị đó đòi hỏi trình duyệt phải xử lý rất nhiều thông tin và nhiều tầng phía bên dưới. Việc chúng ta (Developers, Testers) tìm hiểu càng sâu tầng bên dưới để nắm được nguyên tắc hoạt động và xử lý của trình duyệt sẽ rất hữu ích trong công việc viết code, sử dụng các tài nguyên cũng như kiểm thử ứng dụng của mình. Cách để npm packages chạy trong browser Câu hỏi phỏng vấn mẹo về React: Component hay element được render trong browser? Khi hiểu được cách thức hoạt động của trình duyệt chúng ta có thể trả lời được rất nhiều câu hỏi như: Tại sao cùng một trang web lại hiển thị khác nhau trên hai trình duyệt? Tại sao chức năng này đang chạy tốt trên trình duyệt Firefox nhưng qua trình duyệt khác lại bị lỗi? Làm sao để trang web hiển thị nội dung nhanh và tối ưu hơn một chút?… Hy vọng sau bài này sẽ giúp các bạn có một cái nhìn rõ hơn cũng như giúp ích được trong công việc hiện tại. 1. Cấu trúc của một trình duyệt Trước tiên chúng ta đi qua cấu trúc, thành phần chung và cơ bản nhất của một trình duyệt web hiện đại, nó sẽ gồm các thành phần (tầng) như sau: Thành phần nằm phía trên là những thành phần gần với tương tác của người dùng, càng phía dưới thì càng sâu và nặng về xử lý dữ liệu hơn tương tác. Nhiệm...

By stationd
Tối ưu tỉ lệ chuyển đổi với Google Optimize và Google Analytics

Tối ưu tỉ lệ chuyển đổi với Google Optimize và Google Analytics

Tối ưu tỷ lệ chuyển đổi là một trong những yếu tố quan trọng mà một Growth Marketer không thể bỏ qua. Google Analytics là công cụ hữu hiệu và phổ biến nhất giúp chúng ta theo dõi, đo lường và tối ưu tỷ lệ chuyển đổi. Số liệu từ Google Analytics giúp chúng ta nhìn ra điểm cần thay đổi để tăng tỷ lệ chuyển đổi. Theo dõi chuyển đổi là quá trình thiết yếu nhưng cũng rất “khó nhằn”. Ngày nay, mọi người đang sử dụng điện thoại di động nhiều hơn và thường xuyên hơn khi mua hàng trực tuyến. Việc tối ưu hóa website phiên bản di động rất quan trọng. Traffic đến từ mobile khá lớn và làm ảnh hưởng nhiều tới tỷ lệ chuyển đổi. Để xem website của bạn có hoạt động tốt trên mobile hay không như thế nào? Làm gì khi tỷ lệ chuyển đổi giảm? Website phiên bản di động của bạn có nội dung hấp dẫn không? Không có những nút điều hướng hành động? Trang bị lỗi …, những điều này có thể ảnh hưởng tới tỉ lệ chuyển đổi Google Analytics, hiểu được điều này, bạn sẽ có cơ sở để khắc phục và hoàn thiện website của mình. Hãy cùng đến với chủ đề “DÙNG GOOGLE ANALYTICS TỐI ƯU TỈ LỆ CHUYỂN ĐỔI TRÊN MOBILE” với sự chia sẻ của diễn giả Nguyễn Minh Đức, CEO IM GROUP tại Vietnam Mobile Day 2018 nhé

By stationd