Что печатает заголовок (-type => 'text') в cgi в Perl - PullRequest
0 голосов
/ 07 октября 2018

Я действительно новичок в cgi и пытаюсь конвертировать скрипт Perl cgi в Python.

Я сталкивался с этими утверждениями в скрипте.

my $q = new CGI;
print $q->header(-type=>'text');

Глядя на него, яможет понять, что q является скалярной переменной, которая содержит данные формы, из которой вызывается скрипт CGI.

Но что делает приведенный выше оператор печати?

Будет ли он проверять, если заголовок типазначение в словаре заголовка формы и напечатать True или False на основании этого?

У меня нет интерпретатора Perl для выполнения и проверки вывода.

Ответы [ 3 ]

0 голосов
/ 07 октября 2018

При цитировании документации CGI.pm

header() возвращает заголовок Content-type:.Вы можете указать свой собственный тип MIME, если хотите, в противном случае он по умолчанию равен text/html.Необязательный второй параметр указывает код состояния и удобочитаемое сообщение.Например, вы можете указать 204 «Нет ответа», чтобы создать скрипт, который говорит браузеру ничего не делать.Обратите внимание, что RFC 2616 ожидает, что там будет читаемая фаза, а также числовой код состояния.

print $cgi->header( -Content_length => 3002 );
0 голосов
/ 14 октября 2018

«Что он делает?»

my $q = new CGI создает новый объект https://metacpan.org/pod/CGI, который может сделать для вас очень много вещей.Лучшими являются параметры, информация о пути и заголовки.

print $q->header(-type=>'text') печатает заголовок, который сообщает браузеру, что генерируется.-type=>'text' недостаточно;это должно быть полным типом MIME, таким как text/plain, text/html, text/csv, application/json или многими другими.Вы даже можете сгенерировать изображение и сделать тип image/jpeg или что-то в этом роде.

Также будет напечатано состояние, которое будет 200 для OK .Ваша программа должна работать без нее, но без вреда при ее добавлении.

Вы пытаетесь перенести это на Python, и я не знаю, какие варианты есть в Python, но вам, вероятно, это не нужно.Просто отделите все записи заголовка, которые вы хотите добавить, такие как теги expires, с символами новой строки (\n), затем добавьте еще одну, чтобы отделить заголовок от тела.

0 голосов
/ 07 октября 2018

Запуск вывода

Мы используем объект CGI для распечатки заголовка HTTP для вывода:

print $q->header; 

Это дает вам следующееЗаголовок HTTP:

Content-Type: text/html; charset=ISO-8859-1 

Если вам нужны дополнительные параметры в заголовке, например, вам может не потребоваться тип по умолчанию, вы можете просто передать их методу заголовка:

print $q->header(-type => "text/plain"); 

Это дает вам следующий заголовок HTTP:

Content-Type: text/plain; charset=ISO-8859-1

Для получения дополнительной информации посетите здесь .

...