ºìÁªLinuxÃÅ»§
Linux°ïÖú

¿´ÌÚѶר¼ÒÈçºÎÔڸ߲¢·¢Ñ¹²âÖÐÖ§³ÖHTTPS°É£¡

·¢²¼Ê±¼ä:2016-12-20 14:35:03À´Ô´:ºìÁª×÷Õß:Ronny
ÓÃepoll±àдһ¸ö¸ß²¢·¢ÍøÂç³ÌÐòÊǺܳ£¼ûµÄÈÎÎñ£¬µ«ÔÚepollÖмÓÈëSSL²ãµÄÖ§³ÖÔòÊÇÒ»¸ö²»³£¼ûµÄ³¡¾°¡£ÌÚѶWeTest·þÎñÆ÷ѹÁ¦²â²úÆ·£¬ÔÚÓû§·´À¡ÖÐÊÕµ½Á˲»ÉÙÖ§³ÖHTTPSЭÒéµÄÇëÇó¡£»ùÓÚ´Ë£¬±¾ÎĽéÉÜÁËÔÚ»ùÓÚepollµÄ¸ß²¢·¢»úÆ÷ÈË¿ò¼ÜÖмÓÈëOpenSSL£¬ÊµÏÖ¶ÔHTTPSÖ§³ÖʱµÄ»ù±¾ÊµÏÖ˼·¡£
Ò»¡¢±³¾°
2014Ä꣬¹È¸èÔÚÆä¹Ù·½²©¿ÍÖз¢²¼¹«¸æ³Æ£¬ÎªÁË´òÔì¸ü°²È«µÄ»¥ÁªÍø»·¾³£¬¹È¸èËÑË÷ÒýÇæ½«³¢ÊÔ°Ñ¡°ÊÇ·ñʹÓð²È«¼ÓÃÜ¡±£¨HTTPS£©×÷ΪËÑË÷ÅÅÃûËã·¨ÖеÄÒ»¸ö²Î¿¼ÒòËØ£¬Ê¹ÓüÓÃܼ¼ÊõµÄÍøÕ¾½«µÃµ½¸ü¶àµÄչʾ»ú»á£¬ÅÅÃûÏà¶ÔͬÀàÍøÕ¾Ò²¸üÓÐÓÅÊÆ¡£Ãæ¶ÔÔËÓªÉ̵ÄHTTP½Ù³Ö£¬¹ã¸æÇ¶È룬½«²úÆ·Ò³ÃæÖØ¶¨Ïòµ½ÆäËûÒ³Ãæ£¬HTTPÕ¾µãͨ³£ÊøÊÖÎ޲ߡ£ËùÒÔ½ö½öÊÇΪÁ˼ÓÃÜÁ÷Á¿£¬HTTPSµÄ²¿ÊðÒ²½«³ÉΪ´óÊÆËùÇ÷¡£

ÌÚѶWeTest·þÎñÆ÷ÐÔÄܲâÊÔÔ­±¾µÄ¼òµ¥Ä£Ê½£¬Ö÷ÒªÕë¶ÔÒÔHTTPЭÒéΪÖ÷µÄÇáÁ¿¼¶³¡¾°£¨ÓÎÏ·ÒµÎñÒ»°ã»á²ÉÓøü¸´ÔÓµÄЭÒ飩¡£¶øÔÚÉÏÏßÖ®ºó£¬ÊÕµ½Á˲»ÉÙÐèÒªHTTPS²âÊÔµÄÓû§·´À¡£¬Óɴ˾ö¶¨ÔÚÎÒÃÇʹÓõÄѹ²â¿ò¼ÜÖмÓÈëHTTPSÖ§³Ö¡£

ÌÚѶWeTest·þÎñÆ÷ÐÔÄܲâÊÔÊÇÒ»¸ö»ùÓÚepollµÄ¸ß²¢·¢»úÆ÷ÈËÍøÂçÐÐΪģÄâ¿ò¼Ü¡£ÆäÖеÄÍøÂç´«ÊäÄ£¿é£¬ÊÇÓõ¥Ïß³ÌepollµÄ¶à·¸´Ó÷½Ê½£¬½«¶à¸ö»úÆ÷È˺ͷþÎñÆ÷µÄ½»»¥°ü½øÐзÇ×èÈû¸ßËÙת·¢¡£ÅäºÏÒÔLinuxϵͳ²ãÃæµÄһЩÅäÖÃÓÅ»¯£¬¾Í¿ÉÒÔ´ïµ½µ¥½ø³Ì¼¸Ç§µÄ»úÆ÷ÈËÊýÁ¿¡£

ºǫ́¿ª·¢Í¬Ñ§£¬Ò»°ãÔÚ×Ô¼ºµÄweb·þÎñÆ÷ÖмÓHTTPSµÄÅäÖÃÏà¶Ô³£¼û£¬µ«×Ô¼ºµ½socket²ãȥдHTTPSµÄ´úÂëʵÏÖ£¬Õâ¸öÐèÇó»¹Õ治̫¶à¡£¶¯ÊÖ֮ǰ£¬ÎÒÃǵ÷ÑÐÁËHTTPS²ã¿ÉÓõĿ⣬×î³£¼ûµÄ¾ÍÊÇOpenSSLÁË¡£ÏñcurlÒ²ÓÐHTTPSµÄÏàÓ¦Ö§³Ö£¬²»¹ý¿¼Âǵ½ÒªÔÚtcp socket£¨epoll£©ÕâÒ»²ãʵÏÖ£¬»¹ÊÇÑ¡ÔñÁËOpenSSL¡£

¶þ¡¢OpenSSL
ÔÚ½éÉÜOpenSSL֮ǰ£¬Ê×ÏÈÒª½éÉÜÏÂHTTPS¡£HTTPSÊÇʲô£¿HTTPS¾ÍÊÇhttp+tls/ssl£¨ÏÂÎļò³ÆSSL£©¡£´ÓÍøÂçЭÒéµÄ²ãÃæÀ´Ëµ£¬TCPÊÇ´«Êä²ãЭÒ飬HTTPÊÇÓ¦ÓòãЭÒ飬SSL¾ÍÊÇΪÁ˸øÓ¦ÓòãµÄHTTP±¨ÎļÓÃÜ£¬×¨ÃżÓÔÚTCPºÍhttpÖ®¼äµÄÒ»²ã°²È«Ð­Òé¡£ÍøÂçÉ϶ÔHTTPSЭÒé½øÐнéÉܵĺÃÎĺܶ࣬È磺http://www.cnblogs.com/LittleHann/p/3741907.html£¬Ïêϸ²ûÊöÁËHTTPSµÄÔ­Àí£¬ÕâÀï¾Í²»ÔÙ׸Êö¡£

OpenSSL¾ÍÊÇÔÚ³£ÓõÄsocket²ãÁ¬½Ó½¨ºÃÖ®ºó£¬Íê³ÉSSL²ãµÄÁ¬½Ó½¨Á¢¡¢ÊÕ·¢°ü¡¢Á¬½ÓÊÍ·Å£¬Æäʵµ÷ÓõĻù±¾Ë¼Â·»¹ÊǺÜÇåÎúµÄ¡£ÎÒÃÇÒÔ±¾ÎÄÖÐҪʵÏÖµÄclient²àΪÀý£¬ÈçÏÂͼËùʾ£º

¿ÉÒÔ¿´µ½£¬¾ÍÊÇÔÚÆÕͨµÄsocket½¨Á¢ºÃTCPÁ¬½Óºó£¬ÔÙÓÃSSL_connect½¨Á¢ssl²ãµÄÁ¬½Ó¡£È»ºóÓÃSSL_read/SSL_writeÌæ´úrecv/send½øÐÐÊÕ·¢Êý¾Ý£¬²¢ÔÚclose socketµÄǰºóÊÍ·Åssl²ãµÄ×ÊÔ´¼´¿É¡£

ÓÉÓÚÒѾ­ÊµÏÖÁË»ùÓÚepollµÄ¿Í»§¶ËÊý¾ÝÊÕ·¢ºÍHTTPЭÒéµÄ½âÎö£¬ËùÒÔÕâÁ½Õß¶¼²»ÊDZ¾ÎĵÄÖØµã----ÏÂÎÄÖ÷Òª½éÉܵÄÊÇÔÚepollµÄ¿ò¼ÜÖÐʹÓÃOpenSSLÊÕ·¢Êý¾Ýʱ£¬ÐèҪעÒâµÄµØ·½¡£

Èý¡¢È«Ë«¹¤ÊµÏÖ
¿´µ½Õâ¸ö±êÌ⣬¿Ï¶¨ÓÐͬѧ»áÄÉÃÆ£ºTCP±¾À´²»¾ÍÊÇȫ˫¹¤µÄô£¬HTTPSÊÇÔÚTCP²ãÖ®Éϵģ¬Ôõô»¹»áµ¥¶ÀÁà³öÕâ¸öÀ´Ëµ£¿Ã»´í£¬TCPÊÇȫ˫¹¤µÄ£¬µ«OpenSSLµÄʵÏÖ£¬²»´ú±íÄãÄÜÏñÆÕͨsocketÒ»ÑùÔÚÊÕ·¢Á½¸öͨµÀÉÏËæÒâ²Ù×÷¡£

Òªµã1£ºOpenSSL²¢·¢¶Áд£¬ÊDz»°²È«µÄ

ÆäʵOpenSSL¹Ù·½µÄÎĵµÉÏ»¹Ã»ÕÒµ½Ö±½ÓµÄ»°ÊõÖ¸Ã÷ͬһ¸öSSL²»ÄÜÁ½¸öÏ̲߳¢·¢¶Áд£¬µ«Êµ¼ÊÉÏ£¬ÍâÍøÉÏ¡¢kmÉ϶¼ÓÐÎÄÕÂ˵ÔÚ¶àÏ̲߳¢·¢Çé¿ö϶Áд»áÒýÆð³ÌÐò±ÀÀ£¡£ÏëÀ´ÊÇSSL¶ÔÏóÄÚ²¿ÊµÏÖÖУ¬Î¬»¤Á˹²ÏíµÄ״̬±äÁ¿»òÕß»º´æÇøÖ®ÀàµÄ×ÊÔ´£¬²¢·¢¶Áдʱ»á¸Ä»µÊý¾Ýµ¼Ö±ÀÀ£¡£¿ÉÒÔͨ¹ý³õʼ»¯Ê±ÉèÖüÓËø»Øµ÷µÄ·½Ê½À´±ÜÃ⣨http://linux.die.net/man/3/crypto_set_locking_callback£©£¬µ«ËøÖÕ¾¿¶ÔÐÔÄÜÓв»Ð¡µÄÓ°Ïì¡£

²»¹ýgapsÏÖÓеÄʵÏÖÊǵ¥½ø³ÌµÄ£¬¼´µ¥½ø³ÌÖÐͨ¹ýepollÍê³ÉÁ˶à¸ö»úÆ÷ÈËÁ¬½ÓµÄÊÕ·¢Êý¾Ý£¬ËùÒÔ²¢²»´æÔÚ¶àÏ̲߳¢·¢µÄÎÊÌ⣬ҲÎÞÐè¼ÓËø¡£ÓÉ´Ë£¬Ð¡±êÌâµÄ¡°È«Ë«¹¤ÊµÏÖ¡±Æäʵ¸üÑϸñ˵ÊÇ¡±µ¥½ø³ÌÇé¿ö϶Áд»¥²»¸ÉÈŵÄË«¹¤ÊµÏÖ¡°¡£

Òªµã2£ºOpenSSLµÄ½¨Á´¡¢ÊÕ°ü¡¢·¢°ü½Ó¿Ú£¬ÆäÊÇ·ñ×èÈû¶¼Ëæsocket±¾ÉíÊôÐÔ¶ø±ä£¬ËùÒÔOpenSSL¿ÉÒÔ·Ç×èÈûʹÓÃ

ÔÚÎÒÃǵij¡¾°Ï£¬ÓÃepollÀ´Î¬»¤»úÆ÷È˵IJ¢·¢½¨Á¬½ÓºÍÊÕ·¢°ü£¬µ±È»Ï£ÍûÈκÎÒ»¸ö¶¯×÷¶¼ÊÇ·Ç×èÈûµÄ£¬ÕâÑù²ÅÄܽ«¶à·¸´ÓõĹ¦Ð§·¢»Óµ½¼«Ö¡£ÄÇÏÖÔÚ¼ÓÁ˸öSSL2½øÈ¥£¬ÊÇ·ñ»¹Äܱ£³ÖÕâÒ»µã£¿´ð°¸ÊÇÄÜ¡£ËùÒÔ£¬ÕâÀïµÄÒªµãÊÇ£¬OpenSSLµÄ½¨Á¢Á¬½Ó¡¢ÊÕ°ü¡¢·¢°ü£¬¶¼¿ÉÒÔÊÇ·Ç×èÈûµÄ¡£

½¨Á¢Á¬½Ó²»ÓÃÉÏͼÖеÄSSL_connect£¬¶øÓÃSSL_do_handshake¡£ÕâÑù£¬Èç¹ûsocket±¾ÉíÉèÖÃΪ·Ç×èÈûµÄ£¬ÄÇÕâ¸ö²Ù×÷Ò²¾Í²»»á×èÈû£¬¶øÊÇÓÐÈýÖÖ·µ»Ø¿ÉÄÜ£º

¿´ÌÚѶר¼ÒÈçºÎÔڸ߲¢·¢Ñ¹²âÖÐÖ§³ÖHTTPS°É£¡¿´ÌÚѶר¼ÒÈçºÎÔڸ߲¢·¢Ñ¹²âÖÐÖ§³ÖHTTPS°É£¡

·µ»Ø0£º

Òâζ×ÅSSL²ãµÄ½»»¥×èÈûÁË¡£Ö±¹ÛµØÈ¥Àí½â£¬ËäÈ»ÕâʱºòTCPÒѾ­Á¬ºÃÁË£¬µ«×ÜҪȥÊÕ·¢Ð©ÎÕÊÖÊý¾ÝʲôµÄÀ´½¨Á¢SSL²ãÁ¬½Ó°É£¬¶øÕâ¸ö¹ý³ÌÊÕ·¢Êý¾Ý×èÈûÁË¡£´Ëʱ£¬ÓÃSSL_get_error()¿ÉÒÔ»ñÈ¡¾ßÌåµÄ´íÎóÂ룺ÈôÊÇSSL_ERROR_WANT_READ»òSSL_ERROR_WANT_WRITE£¬¾ÍÔÚepollÖйØ×¢¸ÃÁ¬½ÓµÄ¿É¶Á»ò¿Éдʼþ£¬²¢ÔÚʼþ±»´¥·¢Ê±½Ó×ŵ÷ÓÃSSL_do_handshake£¬Ö±µ½·µ»ØÏÂÃæµÄ1¡£

2£©·µ»Ø1£º

SSL²ã½¨Á´Êý¾Ý½»»¥Íê³É£¬¿ÉÒÔ¿ªÊ¼ÊÕ·¢ÒµÎñÊý¾ÝÁË

3£©<0£º

ЭÒé»òÁ¬½Ó²ã¸÷ÖÖÒì³£³ö´í£¬²»ÔÙÏêÊö¡£

·Ç×èÈû½¨Á¢SSLÁ¬½ÓµÄ¹ý³ÌÈçͼËùʾ£º


½¨Á´Ö®ºó£¬¾ÍÊÇÊÕ·¢Êý¾ÝÁË¡£ÓÉÓÚsocketΪ·Ç×èÈû£¬ËùÒÔÊÕ·¢Êý¾ÝµÄº¯ÊýSSL_read¡¢SSL_writeÒ»Ñù»á·Ç×èÈû¡£ËûÃǵIJÎÊýºÍÆÕͨµÄrecv/sendµÈ¶ÁдÀຯÊýºÜÏñ£¬¾ÍÊÇ´«ÈëbuffºÍlengthÕâЩ¡£ÐèҪעÒâµÄÔÚÓÚ£¬ºÍSSL_do_handshakeÒ»Ñù£¬Èç¹û·µ»ØÖµ´óÓÚ0£¬±íʾ³É¹¦ÊÕ·¢ÁËÒµÎñ²ãÊý¾Ý£»Èç¹û·µ»ØÖµµÈÓÚ0£¬ÔòÐèÒªÅжÏÏ´íÎóÂëÊDz»ÊÇSSL_ERROR_WANT_READ»òSSL_ERROR_WANT_WRITE£¬¼´¶Áд×èÈûÁË¡£

·¢°ü£¬¼´·¢ËÍÒ»¸öÇëÇóµ½HTTP·þÎñÆ÷µÄÂß¼­ÈçÏÂͼ£º

¿ÉÒÔ¿´³ö£¬·¢°üµÄÂß¼­ºÍÆÕͨµÄʹÓÃepoll·¢°üµÄÂß¼­´ó¸ÅÏàͬ£¬Çø±ðÔÚÓÚÒÔϼ¸µã£º

1£©SSL_writeÌæ´úÁËÆÕͨµÄsend£»

2£©SSL_writeÒ²»á×èÈû¡£Ö»ÊÇ£¬ÎÒÃÇÕâÀïÖ»¹Ø×¢Ð´×èÈû£¨¼´Í¼ÖеĴíÎóÂëΪSSL_ERROR_WANT_WRITE£©£¬È»ºó¼ÓÈëepoll£¬¹Ø×¢socketµÄ¿Éдʼþ¡£

ÉÏÃæµÄµÚ2µã¾ÍÊÇOpenSSL±È½ÏÆæÝâµÄÒ»¸öµØ·½ÁË£ºµ÷ÓÃSSL_write·¢°ü£¬¿ÉÄÜ·µ»ØµÄÊÇÒ»¸öSSL_ERROR_WANT_READ£¬¼´·¢°ü¿ÉÄÜ×èÈûÔÚ¶Á²Ù×÷£¡ÎÞ·¨Àí½â°É¡£ÆäʵÕâ¸öÊÇÒòΪÔÚHTTPµÄµ×²ã£¬»áÓÐÒ»¸öÖØÐ­É̵Ĺý³Ì£¬Õâ¸ö¹ý³Ì£¬Ï൱ÓÚÔÚÒµÎñÊý¾ÝÕýÔÚµ¥ÏòµØÊÕ»ò·¢µÄʱºò£¬Í»È»ÔÚSSLÁ´Â·²ãҪȥ½»»¥Ð­ÒéÊý¾Ý£¬Öؽ¨Á´½ÓÁË----ÄÇÕâ¸öʱºò£¬ÖØÐ­ÉÌЭÒéÊý¾Ý½»»¥ÊÇË«·½µÄ£¬client¿ÉÄܸպÃÔÚrecvЭÒéÊý¾Ýʱ±»×èÈûÁË£¬ÄǾÍÖ»ÄܹԹԵصÈsocket¿É¶ÁÁË----SSL_writeÔÚÕâÖÖÇé¿öÏ£¬»á·µ»ØÒ»¸öSSL_ERROR_WANT_READ£¬µÈ´ý¿É¶Á¡£¶øÏ´οɶÁʼþ·¢Éúʱ£¬»¹ÐèÒªÖØ¸´µ÷ÓÃSSL_write£¬Ö±µ½SSL_write³É¹¦¡­¡­ÊDz»ÊÇÓÐµãÆæ¹Ö£¬epoll¸æÖªÎÒÃÇsocket¿É¶ÁÁË£¬ÎÒÃǾÓȻҪ¶Ôsocketµ÷ÓÃд²Ù×÷¡£
ÖØÐ­É̵ÄÔ­ÀíÍøÉÏÒ²Óкܶ࣬ÕâÀï²»ÏêÊö¡£Ö»ÊÇ£¬ÎÒÃÇÔÚȫ˫¹¤µÄģʽÏ£¬¶ÔÓÚSSL_write²Ù×÷£¬Ö»ÈÏΪд×èÈûÊÇÕý³£µÄ£¡Ò»µ©ÒòÎªÖØÐ­ÉÌ·¢Éú¶ø²úÉú¶Á×èÈû£¬ÎÒÃǾÍÈÏΪÁ´Â·³öÏÖÎÊÌâÁË----·ñÔò£¬ÎÞ·¨ÕæÕýʵÏÖÊÕ·¢»¥²»¿¼ÂǵÄȫ˫¹¤£¬Õâ¸ö»áÔÚ°ëË«¹¤µÄʱºò¾ßÌå½éÉÜ¡£

ÊÕ°ü£¬¼´½ÓÊÕ·þÎñÆ÷²à·µ»ØµÄHTTPÏìÓ¦µÄÂß¼­ÈçÏÂͼ£º

¿ÉÒÔ¿´µ½£¬ÊÕ°üµÄÂß¼­ºÍ·¢°üÀàËÆ£¬Ò²ÊÇÓпÉÄÜ»áÒòÎªÖØÐ­É̲úÉúд×èÈû£¬ÎÒÃÇÔÚȫ˫¹¤ÊµÏÖµÄ×ö·¨£¬Ò»ÑùÊÇÈÏΪ³ö´í¡£

ËÄ¡¢¼ÓÈë°ëË«¹¤¿ª¹Ø----ÖØÐ­ÉÌ¿¼ÂÇ
Òªµã3£ºµ±SSL_read»òSSL_write×èÈûʱ£¬ÐèÒªÔÚSSL¶ÔÏóÉÏÖØ¸´µ÷ÓøòÙ×÷Ö±µ½ÊÕ·¢Íê³É

Òªµã3ÕýÊÇÎÒÃÇÉÏÃæÌáµ½µÄÆæÝâÖ®´¦¡£ÕâÒ²ÊÇÔÚOpenSSLµÄ¹Ù·½ÎĵµÖÐ˵Ã÷Á˵ģº

ËùÒÔ£¬ÎÒÃÇÈç¹ûÐèÒªÕæÕýÖ§³ÖÖØÐ­ÉÌ£¬¾Í±ØÐëÓÐÒ»ÖÖ°ëË«¹¤µÄʵÏÖ----ÕâÖÖʵÏÖ»áÔÚÊÕ·¢°ü×èÈûÔÚ¶ÔÓ¦µÄ²Ù×÷ºó£¬¼Ç¼һ¸öÖмä״̬£¬²»´¦Àíµ±Ç°²»ÆÚÍûµÄÊÕ»ò·¢£¬Ö±µ½Ö®Ç°±»×èÈûµÄ²Ù×÷Íê³É¡£ÕâÖÖÇé¿öÏ£¬Ï൱ÓÚ¶ÔÕâ¸ö×Ô¶¨ÒåµÄ״̬ά»¤ÁËÒ»¸ö״̬»ú¡£ÓÉÓÚʵ¼ÊʵÏַdz£¸´ÔÓ£¬ËùÒÔ´úÂëϸ½Ú¾Í²»ÔÚÕâÀïÌùÁË¡£¸ÅÀ¨Ò»Ï£¬´ó¸ÅÊÇÏÂÃæµÄÕâ¸ö״̬»ú×ªÒÆÍ¼ºÍһЩҪµã£º

ÈçÉÏͼ£º

1£©¡°Õý³£×´Ì¬¡±¿ÉÒÔÈÏΪÁ¬½Óµ±Ç°ÊÇ¿ÕÏе쬲»ÐèÒªÊÕ·¢Êý¾Ý£»
2£©Õý³£Ì¬ÏÂÓпͻ§¶ËÊý¾ÝÒª·¢ËÍ£¬Ôòµ÷ÓÃSSL_write½Ó¿Ú£¬Èç¹û×èÈû£¬Ôò»á½øÈëͼ×óµÄÁ½¸ö״̬£»
3£©Õý³£Ì¬ÏÂepollÌáʾÓзþÎñ¶Ë·µ»ØµÄÊý¾Ý¿É¶Á£¬Ôòµ÷ÓÃSSL_read½Ó¿Ú£¬Èç¹û×èÈû£¬Ôò»á½øÈëͼÓÒµÄÁ½¸ö״̬£»
4£©ÔÚÍâ²àµÄËÄÖÖ״̬Ï£¬²»Êǵ±Ç°ÆÚÍûµÄ²Ù×÷£¬¶¼²»»á´¦Àí£ºÈç×èÈûÔڵȴý¶Á/дʱ£¬epollµÄ¿Éд/¿É¶Áʼþ¶¼²»Àí»á£¬ÓÖÈ磬×èÈûÔÚÈκÎÒ»ÖÖ״̬ʱ£¬¿Í»§µÄ·¢°üÇëÇó¶¼»áÈë¶ÓÁУ»
5£©ºì×Ö±ê³öµÄÁ½¸ö״̬ºÍƽʱÆÕͨsocket+epollµÄ²Ù×÷¸ÕºÃÏà·´£¬ÖµµÃÁôÒâ¡£

Èç´Ë£¬Ò»¸ö°ëË«¹¤µÄHTTPS¿Í»§¶ËʵÏÖ¾ÍÓÐÁË¡£µ«ËüµÄȱÏݺÜÃ÷ÏÔ£ºÃ¿´Î¶Á¡¢Ð´²Ù×÷¶¼¿ÉÄÜ×èÈûÁíÒ»¸ö·½ÏòÉϵÄÊý¾Ý´«Ê䣬ÐÔÄÜ»áÓм±¾çµÄϽµ¡£ÓÉÓÚͨ³£·þÎñÆ÷¶Ë²¢²»ÍƼöÖØÐ­É̵Ĺý³Ì£¬ËùÒÔÕâÖÖÇé¿öÒ²ÊǺÜÉÙ¼ûµÄ¡£Òò¶ø£¬È«Ë«¹¤µÄʵÏÖ¼ÓÁË¿ª¹Ø£¬µ±ÆÕͨHTTPS·þÎñÆ÷½øÐÐѹ²âʱ£¬¹Ø±Õ¿ª¹Ø£¬±£Ö¤ÐÔÄÜ£»µ±Ãæ¶ÔÕæÓÐÖØÐ­ÉÌÕâÖÖÌØÊâÐèÇóµÄ·þÎñÆ÷ʱ£¬²Å´ò¿ª¿ª¹Ø¡£

Îå¡¢HTTPS²âÊÔ¹¦ÄܵÄʹÓÃ
ÏÂÃæ£¬ÎÒÃÇÀ´¿´Ò»ÏÂÈçºÎÔÚ¼òµ¥Ä£Ê½ÖнøÐÐHTTPSÒ³ÃæµÄ·þÎñÆ÷ÐÔÄܲâÊÔ¡£

1) µã»÷·þÎñÆ÷ÐÔÄܲâÊÔ²úÆ·Ê×Ò³£¨http://wetest.qq.com/gaps/£©ÖеĿì½ÝÈë¿Ú£ºHTTPֱѹ¡£Ä£Ê½Ñ¡Ôñ¼òµ¥Ä£Ê½£¬Ãû³ÆºÍÃèÊö¿ÉÒÔ×Ô¼ºÌîд¡££¨Í¼ÖÐʾÀýÆðʼÈËÊý50ÈË£¬Ã¿¸ô60ÃëÔö¼Ó50ÈË£¬¼Óµ½200ÈËΪÉÏÏÞ£©


2£©Ð½¨Ò»¸ö¿Í»§¶ËÇëÇ󣬽ӿÚѹ²â°üÀ¨¶Áд½Ó¿Ú£¬¶Á½Ó¿Ú»ù±¾ÊÇGETÇëÇó£¬Ð´½Ó¿Ú»ù±¾ÊÇPOSTÇëÇó¡£GETÇëÇóʹÓÃurlÇëÇó²ÎÊý£¬Ìîд²âÊÔÓÃÀýµÄ»ù´¡ÊýÖµ£¬Ñ¡ÔñÕýÈ·µÄURL

ÅäÖÃÒ³ÃæheaderÐÅÏ¢

3£© Ëæºó½øÐÐHeaderµÄÅäÖã¬HeaderµÄÃû³ÆÔÚÑ¡¶¨URLµÄÄÚ£¬´ò¿ªURLµÄÁ´½Ó£¨ÍƼöʹÓÃchromeä¯ÀÀÆ÷£©£¬Çû÷F12²¢Ë¢ÐÂÒ³Ãæ£¬Ñ¡¶¨Network-Name-Headers-Request Headers£¨HeaderµÄÃû³ÆÓëÖµ¾ùÔÚÄڲ鿴£¬ÈçÏÂͼËùʾ£©

²é¿´Ò³ÃæheaderÐÅÏ¢

µ½ÕâÀ»ù±¾¾ÍÍê³ÉÁ˶ÔHTTPSµÄÅäÖùý³ÌÁË£¬ÊDz»ÊǺܼòµ¥£¿ÏÂÃæ¶¯Í¼¿ÉÒÔÔٻعËһϲÙ×÷µÄÁ÷³Ì£º



±¾ÎĵØÖ·£ºhttp://www.linuxprobe.com/pressure-measurement-https.html
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. Ronny ÓÚ 2016-12-20 14:35:49·¢±í:

    µð