반응형
    
    
    
  
이번 주차 과제는 웹서버를 직.접 구현하는 거다.
하는 도중 에러는 안나지만 페이지에 접속하면 아래와 같은 화면이 나온다.

찾아본 결과
// 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 |