protected function _initDefaultVarnishHeaders($withoutTags)
    {
        // Add TTL header if any of them have been specified
        if (!$withoutTags && $this->_ttlList) {
            $this->setVarnishHeader(self::HEADER_TTL, min($this->_ttlList) . 's');
        }

        // Add object tags header only if it is not added
        if (!$withoutTags && $this->_objectTags && !$this->hasVarnishHeader(self::HEADER_OBJECTS)) {
            $objects = array_map(
                array($this, 'formatObjectTag'),
                $this->_objectTags
            );
            
            $headerValue = array();
            
            foreach (array_chunk($objects, self::HEADER_OBJECTS_ITEMS) as $objectSubset) {
                $headerValue[] = implode(',', $objectSubset);
            }
            
            $this->setVarnishHeader(
                self::HEADER_OBJECTS, 
                $headerValue
            );
        }
        
        if (!$this->hasVarnishHeader(self::HEADER_SEGMENT)) {
            $this->setVarnishHeader(self::HEADER_SEGMENT, $this->hashData($this->getCustomerSegment()));
        }
        
        if (!$this->hasVarnishHeader(self::HEADER_STORE)) {
            $this->setVarnishHeader(self::HEADER_STORE, Mage::app()->getStore()->getCode());
        }

        if (!$this->hasVarnishHeader(self::HEADER_COOKIE_DOMAIN)) {
            /** @var Mage_Core_Model_Cookie $cookieModel */
            $cookieModel = Mage::getSingleton('core/cookie');
            $this->setVarnishHeader(self::HEADER_COOKIE_DOMAIN, $cookieModel->getDomain());
        }

        if (Mage::getStoreConfigFlag(self::XML_PATH_GZIP)
            && !$this->hasVarnishHeader(self::HEADER_GZIP)) {
            $this->setVarnishHeader(self::HEADER_GZIP, '1');
        }

        return $this;
    }