I have figured it out by myself, this is how it will work. This is code is updating title of list, title of web can also be updated by changing the uri and post data.
Uri uri = new Uri("http://sp2013vm/_api/web/lists/GetByTitle('Tasks')");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.ContentType = "application/json;odata=verbose";
request.Headers["X-RequestDigest"] = getDigestValue();
request.Headers["X-HTTP-Method"] = "MERGE";
request.Headers["IF-MATCH"] = "*";
request.Credentials = CredentialCache.DefaultCredentials;
request.Accept = "application/json;odata=verbose";
request.Method = "POST";
string stringData = "{ '__metadata': { 'type': 'SP.List' }, 'Title': 'New title' }";
request.ContentLength = stringData.Length;
StreamWriter writer = new StreamWriter(request.GetRequestStream());
writer.Write(stringData);
writer.Flush();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());