code: func ParseRequestLine(line []byte) (r RequestLine, ok bool) {
  	var i int
  	for i = 0; i < len(line); i++ {
  		c := line[i]
  		if !OctetTypes[c].IsToken() {
  			if i > 0 && c == ' ' {
  				break
  			}
  			return
  		}
  	}
  	if i == len(line) {
  		return
  	}
  
  	var proto []byte
  	r.Method = line[:i]
  	r.URI, proto = split2(line[i+1:], ' ')
  	if len(r.URI) == 0 {
  		return
  	}
  	if major, minor, ok := ParseVersion(proto); ok {
  		r.Version.Major = major
  		r.Version.Minor = minor
  		return r, true
  	}
  
  	return r, false
  }
docs: // ParseRequestLine parses http request line like "GET / HTTP/1.0".