public AbstractRequestContextBuilder sessionProtocol(SessionProtocol sessionProtocol) {
        requireNonNull(sessionProtocol, "sessionProtocol");
        if (rpcReq != null) {
            checkArgument(sessionProtocol == this.sessionProtocol,
                          "sessionProtocol: %s (expected: same as the session protocol specified in 'uri')",
                          sessionProtocol);
        } else {
            this.sessionProtocol = sessionProtocol;
        }
        return this;
    }
Sets the {@link SessionProtocol} of the request.

@throws IllegalArgumentException if the specified {@link SessionProtocol} is not compatible with
                                 the scheme of the {@link URI} you specified when creating this builder.
                                 For example, you cannot specify {@link SessionProtocol#H2C} if you
                                 created this builder with {@code h1c://example.com/}.
core/src/main/java/com/linecorp/armeria/common/AbstractRequestContextBuilder.java