programing

요청["키"] 대 요청.Params["키"] 대 Request.쿼리 문자열["키"]

oldcodes 2023. 6. 18. 16:17
반응형

요청["키"] 대 요청.Params["키"] 대 Request.쿼리 문자열["키"]

Request["key"]Request.Params["key"]Request.QueryString["key"]

숙련된 프로그래머들은 어떤 방법을 사용합니까? 그리고 그 이유는 무엇입니까?

추천합니다Request.QueryString["key"]과는 큰 차이가 없습니다.Request["Key"]쿼리 문자열의 경우이지만 값을 가져오려면 큰 차이가 있습니다.ServerVariables.Request["Key"]에서 값을 찾습니다.QueryStringnull인 경우 를 확인합니다.Form,그리고나서Cookie그리고 마지막으로ServerVariables.

사용.Params가장 비용이 많이 듭니다.매개 변수에 대한 첫 번째 요청이 새 항목을 생성합니다.NameValueCollection그리고 각각을 추가합니다.QueryString,Form,Cookie그리고.ServerVariables이 컬렉션까지두 번째 요청의 경우 다음보다 성능이 우수합니다.Request["Key"].

두 개의 키에 대한 성능 차이는 무시해도 될 정도입니다.여기서 핵심은 코드가 의도와 사용을 나타내야 한다는 것입니다.Request.QueryString당신의 의도가 무엇인지 명확하게 합니다.

사용하는 것을 선호합니다.Request.QueryString["key"]데이터를 어디서 얻는지 코드 검사자가 정확히 알 수 있도록 도와주기 때문입니다.사용하지 않는 편입니다.Request.Params["key"]쿠키, 쿼리 문자열 및 기타 몇 가지를 참조할 수 있기 때문에 사용자는 약간의 생각을 해야 합니다.누군가가 여러분이 생각하는 것을 알아내는 데 필요한 시간이 적을수록, 코드를 유지하는 것이 더 쉬워집니다.

HttpRequest.Params또는Request.Paramshttprequest에서 모든 것(문자열, 형식, 쿠키 및 세션 변수)을 얻는 반면,Request.Querystring쿼리 문자열만 풀링합니다...모든 것은 당신이 그때 무엇을 하고 있느냐에 달려 있습니다.

항상 컬렉션을 명시적으로 지정합니다.어떤 이유로 재정의를 허용하려면 각 "get"을 코드화하고 계층 구조를 보여주는 명확한 코드를 작성합니다.IMO, 저는 명확한 비즈니스 이유 없이 여러 소스로부터 가치를 얻는 것을 싫어합니다.

참고로 web.config에서 requestValidationMode="4.5"를 설정하면 둘 다 요청합니다.QueryString["키"]요청["key"]는 "임의 로드" 동작을 설계로 사용합니다.

하지만, 어떻게든 요청합니다.Params["key"]는 여전히 4.0의 동작으로 유효성 검사를 트리거합니다.

이 이상한 행동은 정말 오랫동안 저를 혼란스럽게 합니다.

항상 URL 매개 변수를 요청으로 대상으로 지정하는 것이 더 유용합니다.쿼리 문자열을 사용하면 다른 여러 위치에서 가져올 수 있는 다른 값을 추적하는 번거로움을 줄일 수 있습니다.

언급URL : https://stackoverflow.com/questions/2312855/requestkey-vs-request-paramskey-vs-request-querystringkey

반응형