Request [ "key"] 대 Request.Params [ "key"] 대 Request.QueryString [ "key"]
Request["key"]
대 Request.Params["key"]
대Request.QueryString["key"]
노련한 프로그래머는 어떤 방법을 사용합니까? 그리고 왜?
나는 추천한다 Request.QueryString["key"]
. 차이가 많이에 없다 Request["Key"]
쿼리 문자열에 대한하지만 당신은에서 값을 얻으려고 노력하는 경우 큰 (어) 차이가있다 ServerVariables
. null 인 경우 Request["Key"]
에서 값을 QueryString
찾고 Form
, Cookie
그리고 마지막으로 ServerVariables
.
사용 Params
은 가장 비용이 많이 듭니다. PARAMS 내지 제 요구가 새롭게 생성 NameValueCollection
하고, 각각의 추가 QueryString
, Form
, Cookie
및 ServerVariables
이 컬렉션. 두 번째 요청의 경우 Request["Key"]
.
두 개의 키에 대한 성능 차이는 상당히 미미합니다. 여기서 핵심은 코드가 의도를 보여야하고 사용 Request.QueryString
은 의도가 무엇인지 명확하게한다는 것입니다.
Request.QueryString["key"]
코드 리더 가 데이터를 어디에서 가져 오는지 정확히 알 수 있기 때문에 사용하는 것을 선호합니다 . Request.Params["key"]
쿠키, 쿼리 문자열 및 기타 몇 가지를 참조 할 수 있기 때문에 사용하지 않는 경향이 있습니다 . 그래서 사용자는 조금 생각해야합니다. 누군가가 당신의 생각을 파악하는 데 필요한 시간이 적을수록 코드를 유지하는 것이 더 쉬워집니다.
HttpRequest.Params
또는 Request.Params
httprequest에서 거의 모든 것 (쿼리 스트링, 양식, 쿠키 및 세션 변수)을 가져 오지만 Request.Querystring
쿼리 스트링 만 가져옵니다. 모두 그 당시 수행중인 작업에 따라 다릅니다.
나는 항상 컬렉션을 명시 적으로 지정합니다. 어떤 이유로 재정의를 허용하려면 각 항목에 대해 "get"을 코딩하고 하나를 선택하는 계층 구조를 보여주는 명확한 코드를 작성하십시오. IMO, 명확한 비즈니스 이유없이 여러 출처에서 가치를 얻는 것을 싫어합니다.
web.config에서 requestValidationMode = "4.5" 를 설정 하면 Request.QueryString [ "key"] 및 Request [ "key"] 모두 "lazy loading"동작을 설계로 사용합니다.
그러나 어떻게 든 Request.Params [ "key"] 는 4.0 동작으로 유효성 검사를 트리거합니다.
이 이상한 행동은 정말 오랫동안 나를 혼란스럽게합니다.
'IT박스' 카테고리의 다른 글
setBackgroundDrawable () 지원 중단됨 (0) | 2020.11.01 |
---|---|
PostgreSQL에서 테이블을 참조하는 저장된 함수 나열 (0) | 2020.11.01 |
장고는 존재하지 않습니다 (0) | 2020.10.31 |
Gradle의 종속성 캐시가 손상되었을 수 있습니다 (이는 때때로 네트워크 연결 시간 초과 후에 발생합니다.) (0) | 2020.10.31 |
Kotlin addTextChangeListener 람다? (0) | 2020.10.31 |