Từ điển

Tập tin, tải xuống và chuyển giao

Hầu hết những gì có vẻ tùy tiện về các tệp trên iPhone đều tuân theo một quy tắc về sự cô lập và hầu hết những gì làm cho việc tải xuống trở nên đáng tin cậy đều tuân theo một tính năng của HTTP. Đây là cả hai, cộng với cách các tập tin được truyền từ thiết bị này sang thiết bị khác.

Hộp cát

Quy tắc là mỗi ứng dụng chỉ có thể xem bộ nhớ riêng của mình. Đó là lý do tại sao một ứng dụng không thể mở các bản tải xuống của ứng dụng khác và tại sao "tệp bên cạnh video" không tồn tại trên iOS.

Mỗi ứng dụng có một thư mục riêng và không thấy được thư mục của bất kỳ ứng dụng nào khác. Tệp chỉ di chuyển giữa các ứng dụng qua những hành động có chủ đích — một share sheet, một trình chọn tài liệu, một thao tác kéo thả — mỗi hành động đó là một quyết định do người dùng thực hiện chứ không phải do một ứng dụng tự lấy.

Cái giá phải trả xuất hiện ở những chỗ nhỏ. Trình phát trên máy tính để bàn tự động tìm thấy film.srt bên cạnh film.mkv; trên iOS không có khái niệm "bên cạnh", nên một tệp phụ đề phải được trao đi một cách chủ động và ứng dụng phải là thứ ghi nhớ việc ghép cặp đó.

Xem thêm: Nhóm ứng dụngDấu trang trong phạm vi bảo mật

Nhóm ứng dụng

Cả hai ứng dụng của cùng một nhà phát triển đều có thể mở một vùng chứa chung - bản crack duy nhất được chấp nhận trong hộp cát. Đó là cách tiện ích mở rộng chia sẻ trao một tệp cho ứng dụng mà nó thuộc về.

Một tiện ích mở rộng chia sẻ là một chương trình riêng biệt với ứng dụng mà nó có vẻ thuộc về, có hộp cát riêng và vòng đời rất ngắn. Nó không thể ghi vào bộ nhớ của ứng dụng chính.

Vì vậy nó ghi vào một vùng chứa mà cả hai đều được phép thấy, và ứng dụng sẽ lấy hết nội dung vùng chứa đó vào lần mở tiếp theo. Không có gì vượt qua ranh giới nhà phát triển, và không có gì vượt qua mà thiếu một lượt chạm rõ ràng.

Xem thêm: Hộp cát

Dấu trang trong phạm vi bảo mật

Mã thông báo ghi nhớ quyền đối với thư mục bên ngoài hộp cát — ổ đĩa ngoài, thư mục trong iCloud — để ứng dụng có thể mở lại sau mà không cần hỏi lại.

Khi bạn chọn một vị trí qua trình chọn tệp của hệ thống, quyền được cấp chỉ dành cho khoảnh khắc đó. Một dấu trang lưu giữ quyền đó qua các lần khởi chạy, và ứng dụng phải chủ động bắt đầu và dừng việc sử dụng quyền truy cập mà nó đại diện.

Đây là thứ khiến việc duyệt một ổ SSD ngoài trở nên khả thi mà không cần sao chép bất cứ thứ gì vào máy, và nó chỉ giới hạn đúng trong phạm vi bạn đã chọn — một dấu trang tới một thư mục không cấp quyền gì về thư mục bên cạnh nó.

Xem thêm: Hộp cát

Yêu cầu phạm vi

Yêu cầu máy chủ cung cấp một phần cụ thể của tệp — 5.000.000 byte đến 5.999.999 — thay vì toàn bộ. Đó là yếu tố giúp quá trình tải xuống có thể tiếp tục và cho phép nhiều kết nối tìm nạp một tệp cùng một lúc.

Một máy chủ hỗ trợ range sẽ trả lời bằng 206 Partial Content cùng phần được yêu cầu. Một máy chủ không hỗ trợ sẽ trả lời 200 và gửi mọi thứ từ đầu, đó chính là khác biệt giữa việc tiếp tục một lượt tải xuống và việc khởi động lại nó.

Mọi điều thú vị về một bộ máy tải xuống đều dựa trên đúng một tính năng HTTP này. Thiếu nó thì không có tiếp tục sau khi rớt kết nối, không có tiếp tục sau khi khởi động lại, và không có cách nào để dùng nhiều hơn một kết nối.

Xem thêm: Tiếp tục tải xuốngKết nối song song

Tiếp tục tải xuống

Quá trình truyền tiếp tục từ chính xác nơi nó đã dừng thay vì bắt đầu lại, bằng cách ghi lại số byte đã cam kết và yêu cầu phần còn lại.

Yêu cầu ở đây là con số được ghi lại không bao giờ được lạc quan. Một byte được tính là đã ghi nhưng vẫn còn nằm trong bộ đệm sẽ trở thành một lỗ hổng trong tệp khi ứng dụng bị chấm dứt — và một lỗ hổng ở giữa một video là một sự hỏng hóc chỉ lộ ra sau cả giờ xem.

Đó là lý do con số này phải theo sát việc ghi ra đĩa chứ không phải việc đọc từ mạng, và là lý do mọi lượt bàn giao giữa chuyển tiếp nền trước và nền sau phải thống nhất trên đúng một con số.

Xem thêm: Yêu cầu phạm viChuyển nền

Kết nối song song

đa kết nối, tải xuống theo từng đoạn

Chia một tệp thành các phạm vi và tìm nạp nhiều tệp cùng một lúc. Nó hữu ích khi một kết nối duy nhất bị hạn chế và không có tác dụng gì khi nút thắt cổ chai là đường dây của chính bạn.

Một máy chủ giới hạn tốc độ của mỗi kết nối thường có thể bị "thuyết phục" để phân phối tổng cộng nhiều hơn qua nhiều kết nối cùng lúc. Đây chính là nơi tải xuống đa kết nối tạo nên danh tiếng của nó.

Đây không phải phép màu và nó thường bị hiểu lầm. Nếu kết nối của bạn đã bão hòa, nhiều kết nối hơn chỉ chia cùng một dung lượng thành các phần nhỏ hơn và thêm chi phí phụ trợ. Một số máy chủ còn từ chối hoặc hạn chế nhiều yêu cầu từ cùng một địa chỉ.

Xem thêm: Yêu cầu phạm viTiếp tục tải xuống

Chuyển nền

Bản tải xuống được chuyển cho hệ điều hành để nó tiếp tục sau khi đóng ứng dụng. Hệ thống quyết định thời gian, đó là giao dịch để nó tiếp tục.

Một ứng dụng iOS ngừng chạy chỉ ít lâu sau khi bạn rời khỏi nó. Một lượt chuyển được trao cho dịch vụ nền của hệ thống sống sót qua điều đó, sống sót qua việc ứng dụng bị chấm dứt, và tiếp tục sau khi khởi động lại.

Cái giá phải đánh đổi là quyền kiểm soát. Hệ thống gộp các lượt chuyển này theo cách nhìn riêng của nó về pin và điều kiện mạng, nên một lượt tải xuống nền có thể tạm dừng và tiếp tục theo những cách một lượt trong ứng dụng sẽ không làm — nhưng nó sẽ hoàn thành.

Xem thêm: Tiếp tục tải xuốngHộp cát

WebDAV

Một tiện ích mở rộng cho HTTP biến máy chủ web thành máy chủ tệp: liệt kê, đọc, ghi, di chuyển, xóa. Đó là những gì Nextcloud và ownCloud nói cũng như những gì hầu hết các hộp NAS cung cấp.

Vì bên dưới nó là HTTP, WebDAV hoạt động qua đúng hạ tầng như mọi thứ khác trên web — không cổng đặc biệt, không giao thức máy khách đặc biệt — đó là lý do nó sống sót trong khi các giao thức tệp cầu kỳ hơn thì không.

Với ai đó thà không đưa tệp lên đám mây của một công ty, đây là lựa chọn thay thế thực tế: máy chủ của riêng bạn, thông tin đăng nhập của riêng bạn, các tiêu chuẩn thông thường.

Xem thêm: Lưu trữ đám mây

Lưu trữ đám mây

Các tệp được lưu trữ trên máy chủ của người khác được truy cập thông qua API của công ty đó – Dropbox, OneDrive, Box, pCloud. Mỗi cái có giao diện riêng, đó là lý do tại sao các ứng dụng hỗ trợ chúng cùng một lúc.

Không có giao thức đám mây phổ quát nào cả. Mỗi nhà cung cấp tự thiết kế API riêng và luồng đăng nhập riêng, nên thêm một nhà cung cấp vào một ứng dụng là công việc thực sự chứ không phải chỉ một mục cấu hình.

Đăng nhập thường dùng OAuth, nghĩa là ứng dụng không bao giờ thấy mật khẩu: nhà cung cấp xác thực người dùng và trả về một token có thể bị thu hồi từ chính cài đặt của nhà cung cấp bất cứ lúc nào.

Xem thêm: WebDAV

WebRTC

Một tiêu chuẩn để kết nối trực tiếp hai thiết bị mà không cần máy chủ giữa chúng khi đã có kết nối. Đó là phương thức truyền từ thiết bị này sang thiết bị khác sử dụng để di chuyển tệp trong phòng.

Một máy chủ báo hiệu nhỏ giới thiệu hai thiết bị cho nhau — đó là mục đích của mã sáu chữ số — rồi rút lui. Tệp di chuyển trực tiếp giữa các thiết bị và không được lưu ở bất kỳ đâu ở giữa.

Trên cùng một mạng, nó nhanh bằng đúng mức mạng đó cho phép. Qua internet, nó phụ thuộc vào việc cả hai bên có thể tiếp cận nhau trực tiếp hay không, và đó là nơi các kết nối đôi khi thất bại vì những lý do không thiết bị nào thấy được.

Xem thêm: Máy chủ HTTP cục bộ

Máy chủ HTTP cục bộ

Một ứng dụng trả lời các yêu cầu web trên mạng riêng của bạn, do đó trình duyệt web trên máy tính của bạn có thể mở một trang do điện thoại của bạn cung cấp. Đó là cách Wi-Fi Transfer hoạt động, không cần cáp và không cần tài khoản.

Điện thoại hiển thị một địa chỉ; máy tính mở nó; trang nhận được do chính điện thoại phục vụ. Tệp di chuyển trực tiếp qua mạng cục bộ và không bao giờ rời khỏi đó.

Vì bất kỳ ai trên cùng mạng đều có thể tiếp cận địa chỉ đó, nó cần một khóa — một mã để nhập, các quyền được cấp theo từng thao tác, và các thao tác có tính phá hủy bị tắt trừ khi được bật lên một cách chủ động.

Xem thêm: WebRTC

Các chủ đề khác