『신당서(新唐書)』 발해전(渤海傳)에는 국도(國都)인 상경(上京)을 중심으로 하여 각 방면에 이르는 교통로를 설명하고 있다. 그 중에 ‘서경압록부(西京鴨綠府)는 조공하는 길(朝貢道也)’이라고 기록되어 있다. 그러나 이 교통로는 초기부터 빈번하게 사용된 것이 아니었다.
당나라에서 안사(安史)의 난(亂)이 있은 뒤부터 종래 사용하던 영주도(營州道)가 거란에 막힘으로써, 발해 사신들은 장령부(長嶺府)를 거치는 육로를 버리고 압록부(鴨綠府)의 수로를 택하게 되었다. 그 구체적인 경로는『신당서』지리지에 인용된 가탐(賈耽)의 「도리기(道里記)」에 자세히 나타나 있다.
이 기록을 바탕으로 중국학자 왕칭례(王承禮)가 고증한 내용을 보면 다음과 같다. 상경에서 출발해 첫 도읍지였던 돈화(敦化)를 거치고 대포시하(大蒲柴河)를 따라 무송(撫松)을 지나서 서경(西京: 현재의 臨江鎭)에 일단 이르게 된다.
한편, 상경에서 왕청 가야하(汪淸 嘎呀河)를 따라 연길(延吉)용정(龍井)을 지나 중경(中京: 현재의 西古城子)에 이르거나, 동경(東京: 현재의 八連城)에서 두만강을 따라 남강산맥(南崗山脈)을 넘고 부르하통하(布爾哈通河)를 거친 다음 연길 · 용정을 지나 중경에 이르게 된다.
중경에서 안도(安圖)를 거쳐 대포시하에 이르면 첫번째와 같은 경로로 서경에 이르게 된다. 이상 세 가지 경로가 일단 서경, 즉 신주(神州)에서 만나게 되며, 다시 환주(桓州: 현재의 集安), 박작구(泊勺口: 현재의 大蒲石河口)를 지난 다음, 석인왕(石人汪: 현재의 遼寧省 石城島) · 행화포(杏花浦) · 도화포(桃花浦) · 청니포(靑泥浦: 현재의 遼寧省 大連) · 도리진(都里鎭: 현재의 遼寧省 旅順)을 지나, 오호해(烏湖海: 현재의 발해해협)를 건너고 묘도열도(廟島列島)의 여러 섬을 지난 뒤 산동반도의 등주(登州)에 이르게 된다. 이곳에서 당나라의 장안(長安)으로 향하게 된다.
결국 조공도는 압록강 하구에서 연안을 따라 항해를 해서 요동지방의 해안을 돌아 바다를 건너 산동반도로 상륙하는 긴 해로라고 할 수 있다. 유득공(柳得恭)의『발해고(渤海考)』에도 압록조공도는 산동반도 등주까지 이어지는 해로로 규정하고 있다.
이 지역의 계절풍을 고려할 때, 당과 발해 사이의 교통로는 단일한 경로에 의존하지 않고 계절에 따라 다양한 해로를 활용했을 것으로 보인다. 북서계절풍이 부는 시기에는 산동반도에서 한반도 서해안으로 도착하는 길을 따라 갔고, 남동계절풍이 부는 시기에는 산동반도에서 요동반도로 가는 해로를 이용했을 것이다.
이 교통로를 이용한 구체적인 사례는 당의 사신인 최흔(崔欣)이 발해대조영(大祚榮)을 책봉한 뒤 714년에 당으로 돌아가던 중, 현재의 여순(旅順) 황금산록(黃金山麓)에 있는 우물에 남긴 기록에서 찾을 수 있다. 732년 발해의 장수 장문휴(張文休)가 등주를 공격했던 경로도 이 곳이었을 것이다.
조공도, 즉 압록조공도는 발해와 당 사이의 정치적 목적과 경제적 교류를 위한 주요 교역로로 활용되었으며, 발해의 대외 교섭 창구로서 중요한 역할을 했다.