Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Máy chủ xử lý các yêu cầu dịch vụ web từ nhiều máy khách như thế nào

Nó dành cho khái niệm chung, không phải dành cho Android cụ thể

Thông thường, mỗi người dùng gửi một yêu cầu HTTP cho trang. Máy chủ nhận các yêu cầu và ủy quyền chúng cho các nhân viên khác nhau (quy trình hoặc luồng).

Tùy thuộc vào URL được cung cấp, máy chủ đọc một tệp và gửi lại cho người dùng. Nếu tệp là tệp động, chẳng hạn như tệp PHP, tệp sẽ được thực thi trước khi được gửi lại cho người dùng.

Khi tệp được yêu cầu đã được gửi lại, máy chủ thường đóng kết nối sau vài giây.

Xem Cách máy chủ web hoạt động

CHỈNH SỬA:

Đối với HTTP, sử dụng TCP là một giao thức dựa trên kết nối. Tức là, các máy khách thiết lập kết nối TCP trong khi họ đang giao tiếp với máy chủ.

Nhiều máy khách được phép kết nối với cùng một cổng đích trên cùng một máy đích tại cùng một thời điểm. Máy chủ chỉ mở ra nhiều kết nối đồng thời.

Apache (và hầu hết các máy chủ HTTP khác) có một mô-đun đa xử lý (MPM). Điều này chịu trách nhiệm phân bổ các luồng / quy trình Apache để xử lý các kết nối. Các quy trình hoặc luồng này sau đó có thể chạy song song trên kết nối của chính chúng mà không chặn lẫn nhau. MPM của Apache cũng có xu hướng giữ các luồng hoặc quy trình "dự phòng" mở ngay cả khi không có kết nối nào được mở, giúp tăng tốc các yêu cầu tiếp theo.

Lưu ý:

Một trong những vấn đề phổ biến nhất với đa luồng là "điều kiện chủng tộc" - trong đó hai yêu cầu của bạn đang thực hiện cùng một việc ("chạy đua" để làm điều tương tự), nếu đó là một tài nguyên duy nhất, một trong hai yêu cầu sẽ giành chiến thắng. Nếu cả hai cùng chèn một bản ghi vào cơ sở dữ liệu, cả hai đều không thể có cùng một id - một trong hai người sẽ thắng. Vì vậy, bạn cần phải cẩn thận khi viết mã để nhận ra các yêu cầu khác đang diễn ra đồng thời và có thể sửa đổi cơ sở dữ liệu của bạn, ghi tệp hoặc thay đổi toàn cầu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các mục nhập trùng lặp có dấu thời gian khác nhau

  2. Nối nhiều bảng trả về giá trị NULL

  3. Cách chuyển đổi từ định dạng ngày này sang định dạng ngày khác trong SQL Server bằng CONVERT ()

  4. Công việc tác nhân SQL:Xác định xem nó đã chạy trong bao lâu

  5. Kiểm tra xem bảng có tồn tại hay không và nếu bảng không tồn tại, hãy tạo bảng trong SQL Server 2008