반응형
이번 주차 과제는 웹서버를 직.접 구현하는 거다.
하는 도중 에러는 안나지만 페이지에 접속하면 아래와 같은 화면이 나온다.
찾아본 결과
// Analysis HTTP URI
int parse_uri(char *uri, char *filename, char * cgiargs)
{
char *ptr;
// 실행파일의 홈디렉토리는 /cgi-bin이라고 가정한다
if(!strstr(uri, "cgi-bin")){ // if for static content
strcpy(cgiargs, ""); // delete cgi args
strcpy(filename, "."); // uri를 ./index.html같은 상대 리눅스 경로이름으로 변환한다.
strcat(filename, uri); // strcat(*str1, *str2) : str2를 str1에 연결하고 NULL 문자로 결과 스트링 종료
if(uri[strlen(uri) -1 ] == '/'){ // 만일 uri가 /문자로 끝난다면
// 기본파일이름을 추가한다.
strcat(filename, "home.html");
}
return 1;
}
else{ // if for Dynamic content
// delete all cgi args
ptr = index(uri, "?");
if(ptr){
strcpy(cgiargs, ptr+1);
*ptr = "\0";
}
else{
strcpy(cgiargs, "");
}
// 나머지 uri 부분을 상대 리눅스 파일 이름으로 변환한다.
strcpy(filename, ".");
strcat(filename, uri);
return 0;
}
}
11 번째줄에
if(uri[strlen(uri) -1 ] == "/") 👉 if(uri[strlen(uri) -1 ] == '/') 로 고쳐줘야 한다.
고치면 아래와 같이 잘 나온다!
이유는
c언어에서는 작은 따옴표는 '문자'에서 사용하고 큰 따옴표는 "문자열"에서 사용하기 때문이다 !
나와 같은 오류로 고생하는 정글러들을 위해 이글을 올린답!
이글을 읽는 모두 열코다 🔥🔥🔥🔥🔥!
반응형
'SW정글사관학교' 카테고리의 다른 글
[SW 정글] 5/13 TIL - 웹서버 (0) | 2022.05.14 |
---|---|
[SW 정글] 5/12 TIL 네트워크 프로그래밍 (0) | 2022.05.14 |
[SW 정글] 5/7~11 TIL 가상메모리 - 주소번역, TLB, 메모리 계층구조, malloc 구현 (2) | 2022.05.11 |
[SW 정글] 5/6 TIL 가상메모리 (2) | 2022.05.07 |
[SW 정글] 5/5 TIL - malloc 구현 왜 하냐? (feat, c) (1) | 2022.05.07 |