در این مطلب، ویدئو ساخت یک سرور HTTP ساده در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:16:07
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,260 –> 00:00:03,030
بنابراین ما یک مرورگر در پایتون ساختیم، وقت آن رسیده
2
00:00:03,030 –> 00:00:06,540
است که یک وب سرور در پایتون بسازیم، بنابراین
3
00:00:06,540 –> 00:00:08,820
به یاد داشته باشید که آنچه ما در اینجا
4
00:00:08,820 –> 00:00:11,400
داریم این است که می دانیم مرورگر یک
5
00:00:11,400 –> 00:00:13,170
برنامه کاربردی است و ما اکنون آن را به یک
6
00:00:13,170 –> 00:00:15,690
برنامه پایتون تبدیل کرده ایم. که این
7
00:00:15,690 –> 00:00:18,000
درخواست دریافت را ارسال میکند، بنابراین ما به طور مؤثری داریم،
8
00:00:18,000 –> 00:00:19,590
همانطور که گفتم سادهترین مرورگر جهان را ساختهایم
9
00:00:19,590 –> 00:00:22,680
و یک درخواست دریافت میفرستد
10
00:00:22,680 –> 00:00:24,570
که سرور کاری انجام میدهد و سپس
11
00:00:24,570 –> 00:00:27,930
آن پاسخ را پس میفرستد و اکنون
12
00:00:27,930 –> 00:00:30,210
میخواهیم به نوعی این را تغییر
13
00:00:30,210 –> 00:00:32,009
دهیم. فرض میکنیم مرورگر وجود دارد
14
00:00:32,009 –> 00:00:34,290
و مشکلی نیست، زیرا ما در
15
00:00:34,290 –> 00:00:36,420
حال حاضر سرور خواهیم بود، بنابراین اکنون میخواهیم با
16
00:00:36,420 –> 00:00:38,969
جزئیات بیشتری به آنچه
17
00:00:38,969 –> 00:00:42,930
در سرور میگذرد نگاه کنیم، بنابراین اینجا یک
18
00:00:42,930 –> 00:00:45,360
وب سرور بسیار ساده است. چند
19
00:00:45,360 –> 00:00:48,510
خط بیشتر از
20
00:00:48,510 –> 00:00:50,370
ساده ترین یک مرورگر وب است، زیرا
21
00:00:50,370 –> 00:00:51,180
باید با چند بار امتحان، خطای کمی وارد کنیم
22
00:00:51,180 –> 00:00:52,829
و اوکی میپذیرد،
23
00:00:52,829 –> 00:00:55,469
پس بیایید ببینیم
24
00:00:55,469 –> 00:00:58,289
این کد چه کار میکند خوب است، اجازه دهید
25
00:00:58,289 –> 00:01:03,510
دوباره رنگ را به آن تغییر دهم. مشکی اگر اهل
26
00:01:03,510 –> 00:01:07,619
مایکروسافت و شما هستید می توانم به آنها بگویم
27
00:01:07,619 –> 00:01:10,830
کلیدی برای تغییر رنگ روی خط
28
00:01:10,830 –> 00:01:12,869
نویس بسازند، من خیلی از این کار تشکر کردم،
29
00:01:12,869 –> 00:01:15,680
اوه و بعد از آن صفحه را خیلی خوب پایین آوردم،
30
00:01:15,680 –> 00:01:18,119
بنابراین می خواهیم چیزهای بیشتری را
31
00:01:18,119 –> 00:01:21,479
از این سوکت بیرون بیاوریم. دوباره
32
00:01:21,479 –> 00:01:22,830
33
00:01:22,830 –> 00:01:26,100
میخواهیم چیزهایی را از سوکت در اینجا بیرون بکشیم و بنابراین ما یک
34
00:01:26,100 –> 00:01:27,810
تابع به نام سرور ایجاد میکنیم که
35
00:01:27,810 –> 00:01:29,549
همینجا آن را فراخوانی میکنیم و
36
00:01:29,549 –> 00:01:31,530
37
00:01:31,530 –> 00:01:33,299
نحوه دسترسی شما به آن را چاپ میکند و سپس کار را شروع میکند. سرور
38
00:01:33,299 –> 00:01:35,759
در حال حاضر کل ایده سرور این است که
39
00:01:35,759 –> 00:01:39,090
سرور سفر از خواب بیدار می شود تا برای اتصالات ورودی منتظر بماند،
40
00:01:39,090 –> 00:01:41,040
بنابراین سرور
41
00:01:41,040 –> 00:01:42,840
از قبل وجود دارد، بنابراین وقتی شروع
42
00:01:42,840 –> 00:01:44,729
به صحبت با وب سروری می کنید که سرورهای آن
43
00:01:44,729 –> 00:01:47,909
رایانه از قبل، نرم افزار سرور در
44
00:01:47,909 –> 00:01:50,340
حال اجرا است و علاقه خود را به آن ثبت می کند
45
00:01:50,340 –> 00:01:52,799
. درخواستهای ورودی، این همان کاری است که ما
46
00:01:52,799 –> 00:01:54,930
انجام میدهیم، بنابراین وقتی این برنامه پایتون شروع
47
00:01:54,930 –> 00:01:57,719
به کار میکند، آنجا مینشیند و در یک
48
00:01:57,719 –> 00:02:01,380
حلقه بینهایت برای درخواستهای ورودی منتظر میماند،
49
00:02:01,380 –> 00:02:02,640
بنابراین اولین کاری که انجام میدهیم این است
50
00:02:02,640 –> 00:02:04,920
که سوکتی
51
00:02:04,920 –> 00:02:06,899
میسازیم که بسیار شبیه به زمان ما باشد. آن را بساز نقطه پایانی این
52
00:02:06,899 –> 00:02:09,060
در واقع برقراری تماس تلفنی نیست، ما به
53
00:02:09,060 –> 00:02:11,310
یاد داشته باشید که من گفتم این تماس سوکت
54
00:02:11,310 –> 00:02:13,950
باعث ایجاد تلفن می شود، بنابراین می
55
00:02:13,950 –> 00:02:16,200
گویند که ما یک تلفن برقرار می کنیم و
56
00:02:16,200 –> 00:02:18,810
این به ما بستگی دارد که بعداً تصمیم بگیریم که
57
00:02:18,810 –> 00:02:20,489
تماس تلفنی برقرار کنیم یا تماس های تلفنی دریافت کنیم.
58
00:02:20,489 –> 00:02:23,599
سپس این مورد بعدی مانند اتصال است
59
00:02:23,599 –> 00:02:27,989
با این تفاوت که من حاضرم در پورت 90
60
00:02:27,989 –> 00:02:30,000
تماس های تلفنی را دریافت کنم، اکنون معلوم می
61
00:02:30,000 –> 00:02:32,160
شود که تنها یک برنامه در پورت 90 وجود دارد
62
00:02:32,160 –> 00:02:33,840
که می تواند تماس های تلفنی را دریافت کند، بنابراین
63
00:02:33,840 –> 00:02:37,200
ممکن است منفجر شود، ممکن است سعی کنید این کار را انجام دهید.
64
00:02:37,200 –> 00:02:39,599
منظور پورت 9000 است و اگر این را دو بار اجرا کنید
65
00:02:39,599 –> 00:02:41,069
و بتوانید آن را در دو پنجره در رایانه خود انجام دهید
66
00:02:41,069 –> 00:02:42,900
، دومی می خواهید منفجر شوید و
67
00:02:42,900 –> 00:02:45,930
بگویید نمی توانید پورت
68
00:02:45,930 –> 00:02:47,910
9000 داشته باشید زیرا نرم افزار دیگری آن را دارد اما تا زمانی
69
00:02:47,910 –> 00:02:50,040
که فقط یک پنجره در حال اجرا باشد. شما می روید و
70
00:02:50,040 –> 00:02:51,180
این بخشی از این است سعی کنید
71
00:02:51,180 –> 00:02:53,130
چیزی را بپذیرید زیرا اگر این را دو بار اجرا کنید
72
00:02:53,130 –> 00:02:54,870
بار دوم منفجر می شود زیرا
73
00:02:54,870 –> 00:02:57,209
نمی توانید تماس های تلفنی را روی این
74
00:02:57,209 –> 00:02:59,459
سرور در پورت 9000 با دو
75
00:02:59,459 –> 00:03:01,230
برنامه دریافت کنید یک برنامه
76
00:03:01,230 –> 00:03:01,799
تماس های تلفنی را دریافت
77
00:03:01,799 –> 00:03:04,140
می کند و این همان چیزی است که سوکت گوش می دهد. sa ys پنج
78
00:03:04,140 –> 00:03:08,610
در آنجا می گوید سیستم عامل عزیز اگر
79
00:03:08,610 –> 00:03:11,880
من مشغول انجام یک تماس تلفنی هستم می توانید
80
00:03:11,880 –> 00:03:14,459
چهار تماس دیگر را نگه دارید و آنها را علامت بزنید و
81
00:03:14,459 –> 00:03:15,930
سپس من برمی گردم و آن را برای شما می گیرم
82
00:03:15,930 –> 00:03:17,910
و اینکه شما از سیستم عامل
83
00:03:17,910 –> 00:03:20,010
می خواهید که نشانه تماسهای دریافتی فقط
84
00:03:20,010 –> 00:03:22,049
نگویید مشغول هستید خاموش میشوید اگر
85
00:03:22,049 –> 00:03:22,530
این را
86
00:03:22,530 –> 00:03:26,100
نگفتید گوش کنید پنج اگر مشغول نوشتن
87
00:03:26,100 –> 00:03:28,350
دادههای تماس تلفنی یک و تماس تلفنی
88
00:03:28,350 –> 00:03:31,049
دو هستید و شما برای آن درست آماده نبودید
89
00:03:31,049 –> 00:03:32,940
فوراً فقط
90
00:03:32,940 –> 00:03:34,260
تماس تلفنی را رد می کند بنابراین گوش
91
00:03:34,260 –> 00:03:36,450
می گوید: آیا سیستم عامل خود را
92
00:03:36,450 –> 00:03:39,060
موقتاً نگه دارید من با شما تماس خواهم گرفت
93
00:03:39,060 –> 00:03:42,090
که چگونه کار می کند و بعد چه
94
00:03:42,090 –> 00:03:44,579
اتفاقی می افتد این است که ما وارد این می شویم به جز اکنون
95
00:03:44,579 –> 00:03:48,510
این به جز من من در تلفن
96
00:03:48,510 –> 00:03:50,310
ثبت نام کرده ام که شماره من چیست و داخلی
97
00:03:50,310 –> 00:03:52,290
من چیست و آماده هستم
98
00:03:52,290 –> 00:03:53,670
تلفن را بردارم به من اطلاع دهید
99
00:03:53,670 –> 00:03:56,910
بنابراین این پذیرش مسدود است آن را متوقف می کند
100
00:03:56,910 –> 00:03:59,250
و فقط آنجا می نشیند و می تواند
101
00:03:59,250 –> 00:04:03,180
برای همیشه آنجا بنشیند فقط به معنای واقعی کلمه
102
00:04:03,180 –> 00:04:05,670
برای همیشه بدانید اگر کسی آن را صدا نمی کند هیچ
103
00:04:05,670 –> 00:04:07,829
اتفاقی نمی افتد خط بعدی هرگز خارج نشوید
104
00:04:07,829 –> 00:04:10,950
اجرا می شود تا زمانی که شما آن را منفجر کنید یا سرور از کار
105
00:04:10,950 –> 00:04:11,400
بیفتد،
106
00:04:11,400 –> 00:04:14,280
بنابراین پذیرش یک مسدود شدن است و
107
00:04:14,280 –> 00:04:16,738
دلیل اینکه ما این کار را به خوبی قبول می کنیم، باید
108
00:04:16,738 –> 00:04:19,560
ابتدا تماس تلفنی را درست برقرار کنیم،
109
00:04:19,560 –> 00:04:23,250
بنابراین این خط بعدی فقط زمانی اجرا می شود که
110
00:04:23,250 –> 00:04:25,500
تماس تلفنی دریافت شده باشد، به این معنی که
111
00:04:25,500 –> 00:04:27,300
ما در سمت مرورگر که
112
00:04:27,300 –> 00:04:30,690
قبلاً متصل شدهایم، میدانید که تماس تلفنی برقرار نکردیم،
113
00:04:30,690 –> 00:04:32,310
من هنوز دادهها را درست ارسال میکنم
114
00:04:32,310 –> 00:04:35,460
، بنابراین اکنون در این
115
00:04:35,460 –> 00:04:37,440
نقطه در جایی بیرون، یک
116
00:04:37,440 –> 00:04:40,050
نرمافزار مشتری وجود دارد که اتصال سوکت را انجام داده است
117
00:04:40,050 –> 00:04:43,650
و ما پذیرش انجام شد
118
00:04:43,650 –> 00:04:45,240
و پذیرفت در
119
00:04:45,240 –> 00:04:47,340
سرور با موفقیت انجام شد اتصال با موفقیت انجام شد و
120
00:04:47,340 –> 00:04:48,389
ما آماده صحبت
121
00:04:48,389 –> 00:04:50,669
هستیم تا تماس تلفنی برقرار شده است اکنون
122
00:04:50,669 –> 00:04:53,039
سوال این است که چه کسی قرار است سلام کند و
123
00:04:53,039 –> 00:04:56,280
اینجاست که پروتکل HTTP مشکل ما را حل
124
00:04:56,280 –> 00:04:58,440
می کند سرور می داند. که
125
00:04:58,440 –> 00:05:01,110
کلاینت باید ابتدا صحبت
126
00:05:01,110 –> 00:05:03,360
کند تا دریافت نکند، بدانید که متوجه خواهید شد
127
00:05:03,360 –> 00:05:05,069
دریافت در ارسال همان
128
00:05:05,069 –> 00:05:08,669
فراخوانی های تابع هستند، زیرا این یک چیز دو طرفه
129
00:05:08,669 –> 00:05:10,830
است و هر آنچه که مرورگر می
130
00:05:10,830 –> 00:05:13,440
فرستد سرور در چه زمانی دریافت
131
00:05:13,440 –> 00:05:14,819
می کند. همیشه سرور مرورگر را
132
00:05:14,819 –> 00:05:16,500
دریافت می کند و آنها می توانند به طور همزمان این کار را انجام
133
00:05:16,500 –> 00:05:18,750
دهند اگر بتوانند آن را بفهمند،
134
00:05:18,750 –> 00:05:21,000
اما معمولاً شما دوست دارید بگویید
135
00:05:21,000 –> 00:05:22,560
نوبت شماست که گوش کنید و نوبت من برای ارسال است
136
00:05:22,560 –> 00:05:24,479
و سپس من گوش می کنم و معمولاً آنها به
137
00:05:24,479 –> 00:05:28,469
نوعی برمی گردند. و در
138
00:05:28,469 –> 00:05:30,780
این مرحله تنها یک مرحله وجود دارد که سرور
139
00:05:30,780 –> 00:05:33,539
گوش می دهد و درخواست دریافت
140
00:05:33,539 –> 00:05:37,340
داده ها را به عقب می فرستد و بنابراین ما
141
00:05:37,340 –> 00:05:41,130
مقداری داده را می خوانیم و پنج
142
00:05:41,130 –> 00:05:42,270
هزار کاراکتر خواهیم داشت که در آن همه چیز را دریافت می کنید به
143
00:05:42,270 –> 00:05:43,919
یاد داشته باشید که یک خط است.
144
00:05:43,919 –> 00:05:46,080
و یک درخواست دریافت در آن وجود دارد،
145
00:05:46,080 –> 00:05:48,300
پارامترهای اختیاری را در خود دارد و بنابراین ما
146
00:05:48,300 –> 00:05:51,090
آن را دوباره تقسیم می کنیم، ما
147
00:05:51,090 –> 00:05:53,099
آن را به عنوان utf-8 دریافت کردیم، باید آن را برای
148
00:05:53,099 –> 00:05:57,840
utf-16 رمزگشایی کنیم، منظورم در utf-16 است. یونیکد در
149
00:05:57,840 –> 00:06:01,830
داخل پایتون و سپس آن را بر اساس خطوط جدید تقسیم می کنیم
150
00:06:01,830 –> 00:06:03,930
زیرا درخواست دریافت در
151
00:06:03,930 –> 00:06:05,279
یک خط است، سپس هدر هدر
152
00:06:05,279 –> 00:06:07,050
هدر هدر سرصفحه و سپس خط خالی
153
00:06:07,050 –> 00:06:08,639
به ما می گوید که ما وارد
154
00:06:08,639 –> 00:06:10,409
سرفصل ها هستیم و فقط می خواهیم در
155
00:06:10,409 –> 00:06:12,419
این مورد ما فقط به اولین
156
00:06:12,419 –> 00:06:14,909
خطی که قرار نیست انجام دهیم نگاه می کنیم هر چیزی که
157
00:06:14,909 –> 00:06:17,279
اکثر سرورها واقعاً دوست دارند
158
00:06:17,279 –> 00:06:18,990
به خط نگاه کنید تا بفهمید چه سندی باید
159
00:06:18,990 –> 00:06:20,789
ارسال شود، این یک سرور بسیار ساده است
160
00:06:20,789 –> 00:06:22,169
، بدون توجه به اینکه URL چیست، همان سند
161
00:06:22,169 –> 00:06:24,150
162
00:06:24,150 –> 00:06:26,069
را می فرستد. ثابت کنید که
163
00:06:26,069 –> 00:06:29,490
ما آن را دریافت کردهایم و سپس یک
164
00:06:29,490 –> 00:06:32,279
پاسخ میسازیم و در این پاسخ
165
00:06:32,279 –> 00:06:34,889
دوباره به RFC به 626 16 برگردید و به شما میگوید
166
00:06:34,889 –> 00:06:36,240
که این پاسخ قرار است
167
00:06:36,240 –> 00:06:39,149
چه شکلی باشد.
168
00:06:39,149 –> 00:06:41,199
169
00:06:41,199 –> 00:06:43,029
احتمالاً من آن را از یک چیز کار برش داده و چسبانده ام و
170
00:06:43,029 –> 00:06:45,520
به آن می گوییم که
171
00:06:45,520 –> 00:06:48,669
آن را در محتوا ارسال می کنیم تایپ کنید یک متن
172
00:06:48,669 –> 00:06:51,189
HTML مجموعه کاراکتر utf-8 حفظ
173
00:06:51,189 –> 00:06:54,490
کنید و به شما بگویم که یک خط خالی و سپس
174
00:06:54,490 –> 00:06:58,300
مقداری بدنه HTML HTML سلام جهان بدن و
175
00:06:58,300 –> 00:07:00,189
من من این اسلش ها را به صورت اسلش
176
00:07:00,189 –> 00:07:03,460
می اندازم که نسخه خطوط جدید شبکه است
177
00:07:03,460 –> 00:07:06,279
و سپس متوجه می شوید که
178
00:07:06,279 –> 00:07:08,169
قبل از ارسال آن را رمزگذاری می کنم
179
00:07:08,169 –> 00:07:11,169
زیرا یونیکد داخل پایتون است و
180
00:07:11,169 –> 00:07:13,569
باید به صورت utf-8 ارسال شود زیرا
181
00:07:13,569 –> 00:07:16,029
تلفن وقتی شما در یک سوکت نازک هستید g
182
00:07:16,029 –> 00:07:17,620
که تقریباً همیشه از سوکت عبور
183
00:07:17,620 –> 00:07:20,139
می کند، قرار است utf-8 باشد، بنابراین ما
184
00:07:20,139 –> 00:07:23,289
آن را رمزگذاری می کنیم و سپس چون
185
00:07:23,289 –> 00:07:25,479
پروتکل می گوید به محض ارسال
186
00:07:25,479 –> 00:07:27,129
داده، اتصال را می بندیم و
187
00:07:27,129 –> 00:07:29,169
به یاد داشته باشید که کلاینت باید
188
00:07:29,169 –> 00:07:31,479
اتصال را نیز ببندد. ما آن را می
189
00:07:31,479 –> 00:07:33,069
بندیم نیمه بسته است و سپس مشتری تمام
190
00:07:33,069 –> 00:07:35,050
داده های خود را دریافت می کند نشان می دهد و
191
00:07:35,050 –> 00:07:36,580
بسته می داند که تمام داده ها تمام شده است
192
00:07:36,580 –> 00:07:38,409
و سپس مشتری آن را به سمت پایین می بندد
193
00:07:38,409 –> 00:07:40,870
و بنابراین دو بار قطع می شود که به
194
00:07:40,870 –> 00:07:43,419
نوعی شبیه یک تماس تلفنی است. آن شخص تلفن را
195
00:07:43,419 –> 00:07:45,520
قطع می کند و سپس روی شما کلیک می کند و اکنون شما
196
00:07:45,520 –> 00:07:47,589
نمی توانید به صحبت کردن ادامه دهید، اما می
197
00:07:47,589 –> 00:07:49,360
خواهید هر دو طرف تلفن را قطع کنند و این
198
00:07:49,360 –> 00:07:52,509
خاموش شدن چیزی است که در حال انجام است و سپس
199
00:07:52,509 –> 00:07:54,520
بقیه این کارها همه امتحان کردن است به جز
200
00:07:54,520 –> 00:07:56,529
موارد مختلف. ما سوکت خود را تمیز
201
00:07:56,529 –> 00:07:58,719
می کنیم تا مجبور نباشیم سرور خود را دوباره راه اندازی کنیم
202
00:07:58,719 –> 00:08:01,029
و نرم افزار ما منفجر شود و
203
00:08:01,029 –> 00:08:02,110
بقیه کارها بسیار ساده است
204
00:08:02,110 –> 00:08:06,610
و پس از آن این y1 اولین
205
00:08:06,610 –> 00:08:09,099
مرورگر صحبت می کند و سپس مقداری داده ارسال می کند
206
00:08:09,099 –> 00:08:10,539
و آن را انجام می دهد. برگردید و منتظر
207
00:08:1