『경상도지리지(慶尙道地理志)』와『동국여지승람(東國輿地勝覽)』에 전라남도 광양군 태인도의 토산품으로 김이 처음 등장한다. 이를 통해 김을 이용해 밥과 반찬이 될 만한 음식을 싸서 먹는 문화는 조선시대부터 존재하였음을 알 수 있다. 조선시대 이후 김을 활용해서 만든 다양한 음식이 존재하였고, 김에 관련된 음식문화가 발달하면서 근대에 들어와 김밥이 탄생한 것으로 보인다.
한편, 김밥이 일제강점기에 발을 돌돌 말아 만든 일본의 김초밥[후토마키(太巻き)]에서 유래했다는 주장도 있다. 이러한 일본 유래설은 다음과 같은 이유에서 그 근거가 의심받고 있다. 첫째, 김밥은 발을 이용하여 말기도 하지만 손으로 직접 말아 만들기도 한다. 둘째, 김밥에 들어가는 재료는 일본 김초밥에는 들어가지 않는 것이 많고, 김초밥과는 비교할 수 없을 정도로 다양하다. 셋째, 우리나라 김밥은 초밥 형태보다는 맨밥 형태가 일반적이며, 맨밥의 경우 식초 없이 그 자체로 즐겨먹는 완전한 음식이다. 이와 같은 점을 고려해 볼 때, 김밥의 기원은 일본 유래설보다 고유 음식설이 보다 설득력을 얻고 있다.
김밥은 초밥을 만들어 싸는 방법과 초밥이 아닌 맨밥으로 싸는 경우가 있는데, 두 경우 모두 밥을 잘 짓는 것이 중요하다. 밥은 질지 않으면서도 잘 퍼지게 지어 쌀알의 형태가 유지되도록 한다. 초밥의 경우는 식초·소금·설탕을 섞어 밥에 뿌리고, 맨밥의 경우는 참기름과 소금을 약간 섞는다.
속으로 들어가는 재료는 시금치나물·계란부침·어묵과 쇠고기 볶은 것, 당근 채 썰어 볶은 것, 오이 채 썰어 볶은 것 등 가정에서 손쉽게 구할 수 있는 몇 가지 재료를 색을 맞추어 준비하면 된다. 재료는 물기가 없도록 꼭 짜서 이용한다.
밥을 김에 얇게 펴놓고 준비한 재료를 넣어 손으로 말기도 하고 김밥용 발을 이용하여 말기도 한다. 근래에는 김밥의 형태에 따라 전형적인 줄김밥 이외에도 충무김밥, 삼각김밥, 꼬마김밥, 누드김밥 등 다양한 길거리 음식이 보편화되고 있는 추세이다.
김밥은 별도의 반찬 없이 간편하게 먹을 수 있는 장점 때문에 남녀노소를 불문하고 도시락이나 여행용 간이식으로 애용되고 있다. 특히, 학생들의 소풍 때는 빠지지 않는 음식이라 할 수 있다.