img-src-base64.txt
10KB · 370 lines
[����] �ѹ��� Ŀ�ؼ���� �̹�� ��� �����ϴ� ��
(BASE64�� ���ڵ��� �̹�� data�� ���� HTML ������ �߰��ϴ� ��)
- �ۼ��� : san2(at)linuxchannel.net
- �ۼ��� : 2002.05.07
- �� �� : ��߱�
- �� �� : HTML/PHP
http://www.linuxchannel.net/docs/img-src-base64.txt
�� ������ �̹���� �����ϴ� �������� �������� Ŀ�ؼ�
���� �ѹ����� ��� �����ϴ� ���� �Ұ��մϴ�.
*���)
����� ������ ��Ȯ� ������� ���մϴ�.
reference : http://www.faqs.org/rfcs/rfc2397.html
1. ��� �� ����
2. "data" URL scheme
3. IMG �±� ���
4. �̹�� ���� ��� BASE64�� ���ڵ� �ϱ�
4-1. Ŀ�ǵ��ο��� �۾��ϱ�(��̽� base64.py)
4-2. PHP�� ���ڵ��� ����
5. ���ڵ��� data�� HTML�� �߰��ϱ�
5-1. �ܼ� HTML���� ����� ���
5-2. PHP�� ����� ���
6. ��ġ��ũ(�ӵ����)
7. ���
8. �ı�
---------------------------------------------------
*���ƻ� ��Ȥ �� �����߽��ϴ�. ������ �ֽñ� �ٶ��ϴ�.
1. ��� �� ����
Ŭ��̾�Ʈ(���� '������')�� Ư�� HTML����(new document)��
��û�� ��ó�� �ѹ��� Ŀ�ؼ�� �̷����, �� ��� HTML�����ȿ�
<IMG> �±װ� ���� 10�� �ִٸ�, �̴� �߰������� 10����
��Ŀ�ؼ�� �̷�� �� �ִٴ� ������ ����� ���߾� ���ϴ�.
�Ϲ������ �ӵ��� ��̱� ���ؼ� ���������� KeepAlive ����
�������� ���� �ٻ� ������ ���� keepAlive�� off �ϴ°��
�� ȿ�����Դϴ�(���ҽ� ����).
�̿Ͱ��� �̹���� ��� ���۹ޱ� ���ؼ� �������� �߰�����
Ŀ�ؼ�� �õ��ϴµ�, HTTP �����ڵ尡 302�� ���� ��������
�������� �̹���� ���۹�� �ʰ� ��ũ ij���� ��ij������
�̹���� ������ ����մϴ�. �ݸ� 302 �ڵ尡 �ƴ� ���� ����
�������� �̹���� ���۹��ϴ�.
������ ��ڿ� ���� ���� �̹���� ���۹� �������� ��������
Ŀ�ؼ�� �̷���µ�, ������ ���ϳ� ��Ʈ��ũ ��� ����
������� ���� �����Ǵ� ��츦 ������� �̴ϴ�.
�� ������ �̿� ���� �̹���� �����ϴ� �������� �������� Ŀ�ؼ�
���� �ѹ����� ��� �����ϴ� ���� �Ұ��մϴ�.
<IMG ... SRC='data:image/gif;base64,R0lGODdhMQAiAPcA.....'>
HTTP �����ڵ� 302�� ���� ���� ����� ��ȿ������� ����Ͻñ�
�ٶ��ϴ�.
2. data" URL scheme
RFC 2397�� ���ϸ�,
data:[<mediatype>][;base64],<data>
'[' �� ']'���� ����� �κ�� �ɼ�Դϴ�.
"data:"
�Ϻ� ���ø���̼ǿ����� URLs��� ����� ����Ƿ� �����.
(RFC 1866)
<mediatype>
data�� media type(�ɼ�).
���� �� �ɼ�� ���ٸ� �⺻������ text/plain;charset=US-ASCII
�� �����.
";base64"
BASE64�� ���ڵ��Ǿ� �ִٴ� �ǹ�(���� �ɼ�).
�� �ɼ�� ���ٸ� ASCII, URL ǥ�� %xx hex ���ڵ����� ��ü�ȴ�.
��: data:,A%20brief%20note
<A HREF='data:,A%20brief%20note'>test</A>
<data>
����� BASE64�� ���ڵ��� data�� ��ġ�ϰų� URL hex ���ڵ��� ���ڿ���
��.
�� �� ������,
dataurl := "data:" [ mediatype ] [ ";base64" ] "," data
mediatype := [ type "/" subtype ] *( ";" parameter )
data := *urlchar
parameter := attribute "=" value
3. IMG �±� ���
<IMG ... SRC='data:image/gif;base64,R0lGODdhMQAiAPcA.....'>
�Ǵ�
<IMG ... SRC='data:;base64,R0lGODdhMQAiAPcA.....'>
�Ǵ�
<IMG ... SRC='data:base64,R0lGODdhMQAiAPcA.....'>
����� �±� �ܾ ����� ������..
<IMG BORDER=1 SRC="data:image/gif;base64,
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
zxIFBAA7">
<BR>
���� ��������?
4. �̹�� ���� ��� BASE64�� ���ڵ� �ϱ�
�̹�� ���� BASE64�� ���ڵ��ϸ� �ణ ���� Ŀ����
����ϵ��� �մϴ�(�� 30%�̻� Ŀ��).
4-1. Ŀ�ǵ��ο��� �۾��ϱ�(��̽� base64.py)
�ٸ� ��� �ִ�� ����� ��ڴ� Ŀ�ǵ��ο���
����� ��̽� ��ũ��Ʈ�� �̿��Ѵ�.
/usr/lib/python1.5/base64.py
$ alias base64='/usr/lib/python1.5/base64.py'
BASE64�� ���ڵ��Ϸ��� ?
(�ɼ�� ���ų� -e �ɼ� ���)
$ base64 -e foobar.gif > foobar.gif.enc
���ڵ��Ϸ���?
(-d �ɼ� ���)
$ base64 -e foobar.gif.enc > foobar.gif
����� ���� ������ ����ũ��Ʈ�� �̿��ؼ� ��ϳ��� .enc��
�ٿ� ���ڵ� ���� �����մϴ�.
-- img2base64.sh -------------------------------
#!/bin/sh
#
fpath=$1
BASE64='/usr/lib/python1.5/base64.py'
OIFS=$IFS
IFS='
'
[ ! -d "$fpath" ] && exit 0
[ ! -s "$BASE64" ] && exit 0
for f in `find $fpath -type f 2>/dev/null` ; do
echo $f
$BASE64 -e $f > $f.enc
done
IFS=$OIFS
exit 0
------------------------------------------------
��� :
$ sh img2base64.sh /path/to/images/directory
4-2. PHP�� ���ڵ��� ����
PHP�� ����� ��� base64_encode()�Լ��� ����Ѵ�.
��:
------------------------------------------------
<?php
fucntion get_file($file)
{
if($fp = @fopen($file,r)) {
$content = fread($fp,filesize($file));
fclose($fp);
}
return $content;
}
$imgfile = get_file('foobar.gif');
$imgfile = base64_encode($imgfile);
echo $imgfile;
echo "\n<BR>\n<IMG SRC='data:base64,$imgfile'>\n";
?>
------------------------------------------------
5. ���ڵ��� data�� HTML�� �߰��ϱ�
������ �̹�� ��ϸ��� BASE64�� ���ڵ��� ���� �����ߴٴ�
�����Դϴ�.
5-1. �ܼ� HTML���� ����� ���
��� IMG �±� ������ ���� ���� BASE64�� ���ڵ��Ͽ� �� data��
IMG �±ȿ� �ռ� ����־�� �մϴ�.
(����� �߳뵿�� �ʿ��� ��......^.^)
5-2. PHP�� ����� ���
------------------------------------------------
<?php
function get_file($file)
{
if($fp = @fopen($file,r)) {
$content = fread($fp,filesize($file));
fclose($fp);
}
return $content;
}
function img_src($imgfile, $border=0, $argument='')
{
$base64data = get_file('$imgfile.enc'); // encoded img file
return "<IMG BORDER=$border $argument SRC='data:base64,$base64data'>";
}
echo img_src('images/foobar.gif');
echo "\n<BR>\n";
echo img_src('images/foobar2.gif',1);
echo "\n<BR>\n";
echo img_src('images/foobar3.gif",0,'WIDTH=200 HEIGHT=1');
echo "\n<BR>\n";
echo img_src('images/foobar4.gif',0,"ALT='foobar4'");
?>
------------------------------------------------
���� ���� ���� �̹�� data�� �����ϸ� �� Ŀ�ؼ� ���� �ѹ���
Ŀ�ؼǸ� �̷���ϴ�.
��� ���ũ�Ⱑ �۰� �������� Ŀ�ؼ�� �̷�� Ȩ�������
���� ������ �̴ϴ�.
�뷮�� ū ���� ���� ����� ��ȿ���� �� �� �ֽ��ϴ�.
����,
����ġ �α���Ͽ��� �̹�� ��Ͽ� ���� ���� �����
����Դϴ�.
�ٸ�, ����� ����
�������� �ٸ� ���ø���̼ǿ��� BODY�� ��̸� �����ϸ�
������ �� �� �ֽ��ϴ�.
���� �ٸ� ���(?)�� ���� �� �ֽ��ϴ�.
���� ��Ʈ�� ���ð�
���� ����� ���� ���� ������.
6. ��ġ��ũ(�ӵ����)
start_time :
(1)Ŭ��̾�Ʈ���� ���� ��û -->
(2)������ ó�� -->
(3)Ŭ��̾�Ʈ���� ���� -->
(4)���������� ���� ���
end_time :
�������, ����� �������� ����ϴµ����� �ð� �����
���� ����Ƿ�(?) (4)�� ������ �����ϰ� (1)-(3)������
������ wget �� time���� �ð��� ����� ���ϴ�.
(wget �� ������ ���� /dev/null�� ����)
����� ���� �Ϲ� HTML �������� ����� ��ũ�� �̹�� ��θ�
�������µ� �� �ð��� ����ؾ� �մϴ�.
- ũ�� ��� �̹���� ������ �غ��մϴ�
�غ��� �̹���� ��� BASE64�� ���ڵ��մϴ�.
(5�� �̻�� �ڽ�� Ȩ���� ���).
- ����1(tmp.html)
���� �Ǵ� �Ϲ� ������ �ۼ��մϴ�.
��: <IMG SRC='images/foobar.gif'> �� ���� ���
- ����2(tmp.php)
PHP�� �̿��ؼ� �ѹ��� Ŀ�ؼ�� �̷������ �ۼ��մϴ�.
��: <IMG SRC='data:base64,$base64data'>
- ����3(tmp.enc.html)
���ڵ��� data�� ���� HTML ������ �߰��մϴ�.
��: <IMG SRC='data:base64,R0lGODdhMQAiAPcA...>
�ϳ��ϳ��� �ۼ��ϱ� ���Ƿ� ����2������ ����
�����մϴ�.
����� ���� ����ũ��Ʈ�� �ۼ��ؼ� ��Ʈ�� ���ϴ�.
������ ���� ��Ʈ��ũ�� �ٸ� PC���� ��Ʈ�� ������.
-------------------------------------------------
#!/bin/sh
file=$1
i=0
time {
while [ $i -lt 100 ] ; do
wget -q -r -O /dev/null http://www.yourdomain.com/tmp/$file
i=$(($i+1))
done
}
exit 0
-------------------------------------------------
$ sh this_script.sh tmp.html
$ sh this_script.sh tmp.php
$ sh this_script.sh tmp.enc.html
�Ƹ� ���� �� ������� ��� �̴ϴ�. T.T
7. ���
��� ���� ������ ���� ��ڴ� �� ������ �ۼ��� ���� ����
����߽��ϴ�.
�����, ��Ʈ�� ���� �� �������� ���� �Ῡ�Ǿ� �ְ�, ����
�翬�� ����� �˸鼭�� �����ϰ� ������(?) �Ƶ��� ���� ������
...
���� ���� �����ڸ�,
1) �Ϲ���� Ȩ������ ��� �� ���� �ʿ����ϴ�.
2) �ٸ�, �������� ������ ���� Ŀ�ؼ�� ���ϰ� �̷����
��� �̹���� ��� �ٲ�� ��쿡 ����.
3) Ŀ�ؼ� ���� �ٿ��� �� ȿ���� �� �� �ִ� ���.
4) ��ڸ� ȥ����� ��� �� ȿ���� �� �� �ִ� ���.
5) Ư���ϰ� ���� �̹�� ���� ����� ��� ��� ���(�ϳ���
������ �����Ұ��).
8. �ı�
����(���� ������ ��̴� �ܿ�)
__EOF