diff --git a/libraries-http/README.md b/libraries-http/README.md
new file mode 100644
index 0000000000..dd8c6a5f67
--- /dev/null
+++ b/libraries-http/README.md
@@ -0,0 +1,7 @@
+
+### Relevant Articles: 
+
+- [A Guide to OkHttp](http://www.baeldung.com/guide-to-okhttp)
+- [A Guide to Google-Http-Client](http://www.baeldung.com/google-http-client)
+- [Asynchronous HTTP with async-http-client in Java](http://www.baeldung.com/async-http-client)
+- [WebSockets with AsyncHttpClient](http://www.baeldung.com/async-http-client-websockets)
diff --git a/libraries-http/pom.xml b/libraries-http/pom.xml
new file mode 100644
index 0000000000..6006a93aef
--- /dev/null
+++ b/libraries-http/pom.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>libraries-http</artifactId>
+	<name>libraries-http</name>
+
+	<parent>
+		<groupId>com.baeldung</groupId>
+		<artifactId>parent-modules</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.assertj</groupId>
+			<artifactId>assertj-core</artifactId>
+			<version>${assertj.version}</version>
+		</dependency>
+
+		<!-- Dependencies for response decoder with okhttp -->
+		<dependency>
+			<groupId>com.squareup.okhttp3</groupId>
+			<artifactId>okhttp</artifactId>
+            <version>${com.squareup.okhttp3.version}</version>
+		</dependency>
+
+        <!-- Dependencies for google http client -->
+        <dependency>
+            <groupId>com.google.http-client</groupId>
+            <artifactId>google-http-client</artifactId>
+            <version>${googleclient.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.http-client</groupId>
+            <artifactId>google-http-client-jackson2</artifactId>
+            <version>${googleclient.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.http-client</groupId>
+            <artifactId>google-http-client-gson</artifactId>
+            <version>${googleclient.version}</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.asynchttpclient/async-http-client -->
+        <dependency>
+            <groupId>org.asynchttpclient</groupId>
+            <artifactId>async-http-client</artifactId>
+            <version>${async.http.client.version}</version>
+        </dependency>
+
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-databind</artifactId>
+			<version>${jackson.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>com.google.code.gson</groupId>
+			<artifactId>gson</artifactId>
+			<version>2.8.5</version>
+		</dependency>
+
+		<dependency>
+			<groupId>com.squareup.okhttp3</groupId>
+			<artifactId>mockwebserver</artifactId>
+            <version>${com.squareup.okhttp3.version}</version>
+			<scope>test</scope>
+		</dependency>
+          
+	</dependencies>
+
+	<properties>
+		<assertj.version>3.6.2</assertj.version>
+        <com.squareup.okhttp3.version>3.14.2</com.squareup.okhttp3.version>
+        <googleclient.version>1.23.0</googleclient.version>
+        <async.http.client.version>2.2.0</async.http.client.version>
+	</properties>
+</project>
diff --git a/libraries/src/main/java/com/baeldung/googlehttpclientguide/GitHubExample.java b/libraries-http/src/main/java/com/baeldung/googlehttpclientguide/GitHubExample.java
similarity index 100%
rename from libraries/src/main/java/com/baeldung/googlehttpclientguide/GitHubExample.java
rename to libraries-http/src/main/java/com/baeldung/googlehttpclientguide/GitHubExample.java
diff --git a/libraries/src/main/java/com/baeldung/googlehttpclientguide/GitHubUrl.java b/libraries-http/src/main/java/com/baeldung/googlehttpclientguide/GitHubUrl.java
similarity index 100%
rename from libraries/src/main/java/com/baeldung/googlehttpclientguide/GitHubUrl.java
rename to libraries-http/src/main/java/com/baeldung/googlehttpclientguide/GitHubUrl.java
diff --git a/libraries/src/main/java/com/baeldung/googlehttpclientguide/User.java b/libraries-http/src/main/java/com/baeldung/googlehttpclientguide/User.java
similarity index 100%
rename from libraries/src/main/java/com/baeldung/googlehttpclientguide/User.java
rename to libraries-http/src/main/java/com/baeldung/googlehttpclientguide/User.java
diff --git a/libraries/src/main/java/com/baeldung/googlehttpclientguide/logging.properties b/libraries-http/src/main/java/com/baeldung/googlehttpclientguide/logging.properties
similarity index 100%
rename from libraries/src/main/java/com/baeldung/googlehttpclientguide/logging.properties
rename to libraries-http/src/main/java/com/baeldung/googlehttpclientguide/logging.properties
diff --git a/libraries-http/src/main/resources/logback.xml b/libraries-http/src/main/resources/logback.xml
new file mode 100644
index 0000000000..7d900d8ea8
--- /dev/null
+++ b/libraries-http/src/main/resources/logback.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+            </pattern>
+        </encoder>
+    </appender>
+
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/libraries/src/test/java/com/baeldung/asynchttpclient/AsyncHttpClientLiveTest.java b/libraries-http/src/test/java/com/baeldung/asynchttpclient/AsyncHttpClientLiveTest.java
similarity index 100%
rename from libraries/src/test/java/com/baeldung/asynchttpclient/AsyncHttpClientLiveTest.java
rename to libraries-http/src/test/java/com/baeldung/asynchttpclient/AsyncHttpClientLiveTest.java
diff --git a/spring-rest/src/test/java/com/baeldung/client/Consts.java b/libraries-http/src/test/java/com/baeldung/client/Consts.java
similarity index 100%
rename from spring-rest/src/test/java/com/baeldung/client/Consts.java
rename to libraries-http/src/test/java/com/baeldung/client/Consts.java
diff --git a/spring-rest/src/test/java/com/baeldung/okhttp/DefaultContentTypeInterceptor.java b/libraries-http/src/test/java/com/baeldung/okhttp/DefaultContentTypeInterceptor.java
similarity index 100%
rename from spring-rest/src/test/java/com/baeldung/okhttp/DefaultContentTypeInterceptor.java
rename to libraries-http/src/test/java/com/baeldung/okhttp/DefaultContentTypeInterceptor.java
diff --git a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpFileUploadingLiveTest.java b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpFileUploadingLiveTest.java
similarity index 93%
rename from spring-rest/src/test/java/com/baeldung/okhttp/OkHttpFileUploadingLiveTest.java
rename to libraries-http/src/test/java/com/baeldung/okhttp/OkHttpFileUploadingLiveTest.java
index 75980a5360..7b28c17607 100644
--- a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpFileUploadingLiveTest.java
+++ b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpFileUploadingLiveTest.java
@@ -19,6 +19,9 @@ import okhttp3.Response;
 import org.junit.Before;
 import org.junit.Test;
 
+/**
+ * Execute <code>spring-rest</code> module before running this live test
+ */
 public class OkHttpFileUploadingLiveTest {
 
     private static final String BASE_URL = "http://localhost:" + APPLICATION_PORT + "/spring-rest";
diff --git a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpGetLiveTest.java b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpGetLiveTest.java
similarity index 93%
rename from spring-rest/src/test/java/com/baeldung/okhttp/OkHttpGetLiveTest.java
rename to libraries-http/src/test/java/com/baeldung/okhttp/OkHttpGetLiveTest.java
index 3edd2eab06..5efc4aa998 100644
--- a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpGetLiveTest.java
+++ b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpGetLiveTest.java
@@ -17,6 +17,9 @@ import okhttp3.Response;
 import org.junit.Before;
 import org.junit.Test;
 
+/**
+ * Execute <code>spring-rest</code> module before running this live test
+ */
 public class OkHttpGetLiveTest {
 
     private static final String BASE_URL = "http://localhost:" + APPLICATION_PORT + "/spring-rest";
diff --git a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpHeaderLiveTest.java b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpHeaderLiveTest.java
similarity index 100%
rename from spring-rest/src/test/java/com/baeldung/okhttp/OkHttpHeaderLiveTest.java
rename to libraries-http/src/test/java/com/baeldung/okhttp/OkHttpHeaderLiveTest.java
diff --git a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpMiscLiveTest.java b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpMiscLiveTest.java
similarity index 95%
rename from spring-rest/src/test/java/com/baeldung/okhttp/OkHttpMiscLiveTest.java
rename to libraries-http/src/test/java/com/baeldung/okhttp/OkHttpMiscLiveTest.java
index 207ad14e71..24617794d1 100644
--- a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpMiscLiveTest.java
+++ b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpMiscLiveTest.java
@@ -20,6 +20,9 @@ import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * Execute <code>spring-rest</code> module before running this live test
+ */
 public class OkHttpMiscLiveTest {
 
     private static final String BASE_URL = "http://localhost:" + APPLICATION_PORT + "/spring-rest";
diff --git a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpPostingLiveTest.java b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpPostingLiveTest.java
similarity index 94%
rename from spring-rest/src/test/java/com/baeldung/okhttp/OkHttpPostingLiveTest.java
rename to libraries-http/src/test/java/com/baeldung/okhttp/OkHttpPostingLiveTest.java
index 66fee0b626..19e689c093 100644
--- a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpPostingLiveTest.java
+++ b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpPostingLiveTest.java
@@ -20,6 +20,9 @@ import okhttp3.Response;
 import org.junit.Before;
 import org.junit.Test;
 
+/**
+ * Execute <code>spring-rest</code> module before running this live test
+ */
 public class OkHttpPostingLiveTest {
 
     private static final String BASE_URL = "http://localhost:" + APPLICATION_PORT + "/spring-rest";
diff --git a/spring-rest/src/test/java/com/baeldung/okhttp/OkHttpRedirectLiveTest.java b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpRedirectLiveTest.java
similarity index 100%
rename from spring-rest/src/test/java/com/baeldung/okhttp/OkHttpRedirectLiveTest.java
rename to libraries-http/src/test/java/com/baeldung/okhttp/OkHttpRedirectLiveTest.java
diff --git a/spring-rest/src/test/java/com/baeldung/okhttp/ProgressRequestWrapper.java b/libraries-http/src/test/java/com/baeldung/okhttp/ProgressRequestWrapper.java
similarity index 100%
rename from spring-rest/src/test/java/com/baeldung/okhttp/ProgressRequestWrapper.java
rename to libraries-http/src/test/java/com/baeldung/okhttp/ProgressRequestWrapper.java
diff --git a/libraries/README.md b/libraries/README.md
index f6a39daef1..f6f2cf4e07 100644
--- a/libraries/README.md
+++ b/libraries/README.md
@@ -36,14 +36,11 @@
 - [Introduction To Docx4J](http://www.baeldung.com/docx4j)
 - [Introduction to StreamEx](http://www.baeldung.com/streamex)
 - [Introduction to BouncyCastle with Java](http://www.baeldung.com/java-bouncy-castle)
-- [A Guide to Google-Http-Client](http://www.baeldung.com/google-http-client)
 - [Interact with Google Sheets from Java](http://www.baeldung.com/google-sheets-java-client)
 - [A Docker Guide for Java](http://www.baeldung.com/docker-java-api)
 - [Introduction To OpenCSV](http://www.baeldung.com/opencsv)
 - [Introduction to Akka Actors in Java](http://www.baeldung.com/akka-actors-java)
-- [Asynchronous HTTP with async-http-client in Java](http://www.baeldung.com/async-http-client)
 - [Introduction to Smooks](http://www.baeldung.com/smooks)
-- [WebSockets with AsyncHttpClient](http://www.baeldung.com/async-http-client-websockets)
 - [A Guide to Infinispan in Java](http://www.baeldung.com/infinispan)
 - [Introduction to OpenCSV](http://www.baeldung.com/opencsv)
 - [A Guide to Unirest](http://www.baeldung.com/unirest)
diff --git a/libraries/pom.xml b/libraries/pom.xml
index 886dd3c4a2..0efb404458 100644
--- a/libraries/pom.xml
+++ b/libraries/pom.xml
@@ -28,13 +28,7 @@
             <version>${typesafe-akka.version}</version>
             <scope>test</scope>
         </dependency>
-
-        <!-- https://mvnrepository.com/artifact/org.asynchttpclient/async-http-client -->
-        <dependency>
-            <groupId>org.asynchttpclient</groupId>
-            <artifactId>async-http-client</artifactId>
-            <version>${async.http.client.version}</version>
-        </dependency>
+        
         <!-- https://mvnrepository.com/artifact/org.beykery/neuroph/2.92 -->
         <dependency>
             <groupId>org.beykery</groupId>
@@ -875,7 +869,6 @@
         <kafka.version>2.0.0</kafka.version>
         <smooks.version>1.7.0</smooks.version>
         <docker.version>3.0.14</docker.version>
-        <async.http.client.version>2.2.0</async.http.client.version>
         <infinispan.version>9.1.5.Final</infinispan.version>
         <opencsv.version>4.1</opencsv.version>
         <unirest.version>1.4.9</unirest.version>
diff --git a/pom.xml b/pom.xml
index f3ddb5d17b..b4fed5150d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -506,6 +506,7 @@
                 <module>libraries-primitive</module>
                 <module>libraries-security</module>
                 <module>libraries-server</module>
+                <module>libraries-http</module>
                 <module>linkrest</module>
                 <module>logging-modules</module>
                 <module>lombok</module>
@@ -1185,6 +1186,7 @@
                 <module>libraries-apache-commons</module>
                 <module>libraries-security</module>
                 <module>libraries-server</module>
+                <module>libraries-http</module>
                 <module>linkrest</module>
                 <module>logging-modules</module>
                 <module>lombok</module>
diff --git a/spring-rest/README.md b/spring-rest/README.md
index 5d7894cdf8..54b47604d4 100644
--- a/spring-rest/README.md
+++ b/spring-rest/README.md
@@ -6,7 +6,6 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring
 ### Relevant Articles:
 - [Spring @RequestMapping](http://www.baeldung.com/spring-requestmapping)
 - [Returning Custom Status Codes from Spring Controllers](http://www.baeldung.com/spring-mvc-controller-custom-http-status-code)
-- [A Guide to OkHttp](http://www.baeldung.com/guide-to-okhttp)
 - [Binary Data Formats in a Spring REST API](http://www.baeldung.com/spring-rest-api-with-binary-data-formats)
 - [Guide to UriComponentsBuilder in Spring](http://www.baeldung.com/spring-uricomponentsbuilder)
 - [Introduction to FindBugs](http://www.baeldung.com/intro-to-findbugs)
diff --git a/spring-rest/pom.xml b/spring-rest/pom.xml
index 36934af101..99bdd7646d 100644
--- a/spring-rest/pom.xml
+++ b/spring-rest/pom.xml
@@ -93,13 +93,6 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
 
-        <!-- okhttp -->
-        <dependency>
-            <groupId>com.squareup.okhttp3</groupId>
-            <artifactId>okhttp</artifactId>
-            <version>${com.squareup.okhttp3.version}</version>
-        </dependency>
-
         <!-- test scoped -->
         <dependency>
             <groupId>org.hamcrest</groupId>
@@ -280,8 +273,6 @@
         <findbugs-maven-plugin.version>3.0.4</findbugs-maven-plugin.version>
         <checkstyle-maven-plugin.version>3.0.0</checkstyle-maven-plugin.version>
         <dependency.locations.enabled>false</dependency.locations.enabled>
-        <!-- okhttp -->
-        <com.squareup.okhttp3.version>3.4.1</com.squareup.okhttp3.version>
 
         <json.path.version>2.2.0</json.path.version>
         <pact.version>3.5.11</pact.version>